#include<iostream> using namespace std; struct po{ int x,y; }p[5]; int x[25],y[25]; int a[5],b[5]; bool thing0(){ int sum=0; for(int i=1;i<=4;i++) { int cx=0,cy=0; for(int j=1;j<=4;j++){ if(i==j)continue; if(p[i].x==p[j].x)cx++; if(p[i].y==p[j].y)cy++; } if(cx==1&&cy==1)sum++; } if(sum==1)return true; return false; } bool thing1(){ int sum=0; for(int i=1;i<=4;i++) { int cx=0,cy=0; for(int j=1;j<=4;j++){ if(i==j)continue; if(p[i].x==p[j].x)cx++; if(p[i].y==p[j].y)cy++; } if(cx==1&&cy==1)sum++; } if(sum==2)return true; return false; } bool thing2(){ int ccx=0,ccy=0; for(int i=1;i<=4;i++) { int cx=0,cy=0; for(int j=1;j<=4;j++){ if(i==j)continue; if(p[i].x==p[j].x)cx++; if(p[i].y==p[j].y)cy++; } if(ccx<cx)ccx=cx; if(ccy<cy)ccy=cy; } if(ccx==0&&ccy==2)return true; return false; } bool thing3(){ int ccx=0,ccy=0; for(int i=1;i<=4;i++) { int cx=0,cy=0; for(int j=1;j<=4;j++){ if(i==j)continue; if(p[i].x==p[j].x)cx++; if(p[i].y==p[j].y)cy++; } if(ccx<cx)ccx=cx; if(ccy<cy)ccy=cy; } if(ccx==2&&ccy==0)return true; return false; } bool thing4(){ int ccx=0,ccy=0; for(int i=1;i<=4;i++) { int cx=0,cy=0; for(int j=1;j<=4;j++){ if(i==j)continue; if(p[i].x==p[j].x)cx++; if(p[i].y==p[j].y)cy++; } if(ccx<cx)ccx=cx; if(ccy<cy)ccy=cy; } if(ccx==1&&ccy==2)return true; return false; } bool thing5(){ int ccx=0,ccy=0; for(int i=1;i<=4;i++) { int cx=0,cy=0; for(int j=1;j<=4;j++){ if(i==j)continue; if(p[i].x==p[j].x)cx++; if(p[i].y==p[j].y)cy++; } if(ccx<cx)ccx=cx; if(ccy<cy)ccy=cy; } if(ccx==2&&ccy==1)return true; return false; } int main(){ int i,j,k; int tempx[4],tempy[4]; while(cin>>p[1].x>>p[1].y>>p[2].x>>p[2].y>>p[3].x>>p[3].y>>p[4].x>>p[4].y){ int tempx[4],tempy[4]; memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); x[p[1].x]++; x[p[2].x]++; x[p[3].x]++; x[p[4].x]++; y[p[1].y]++;y[p[2].y]++;y[p[3].y]++;y[p[4].y]++; for(i=1;i<=4;i++){ a[i]=x[p[i].x]; b[i]=x[p[i].y]; } sort(a,a+4); sort(b,b+4); if((a[4]==4)||(b[4]==4)||(a[4]==2&&a[3]==2)||(b[4]==2&&b[3]==2)||(a[4]==2&&b[4]==2&&thing1())){ //直接输出 //cout<<endl; } else if(thing2()){ if(p[1].x==p[2].x&&p[1].x==p[3].x){//4 int yc=0; for(i=1;i<=3;i++){ yc=yc>p[i].y?yc:p[i].y; } p[4].y=yc; } else if(p[1].x==p[2].x&&p[1].x==p[4].x){//3 int yc=0; for(i=1;i<=4;i++){ if(i==3)continue; yc=yc>p[i].y?yc:p[i].y; } p[3].y=yc; } else if(p[1].x==p[4].x&&p[1].x==p[3].x){//2 int yc=0; for(i=1;i<=4;i++){ if(i==2)continue; yc=yc>p[i].y?yc:p[i].y; } p[2].y=yc; } else if(p[3].x==p[2].x&&p[4].x==p[3].x){//1 int yc=0; for(i=1;i<=4;i++){ if(i==1)continue; yc=yc>p[i].y?yc:p[i].y; } p[1].y=yc; } } else if(thing3()){ int xc=0; if(p[1].y==p[2].y&&p[1].y==p[3].y){//4 for(i=1;i<=3;i++){ xc=xc>p[i].x?xc:p[i].x; } p[4].x=xc; } else if(p[1].y==p[2].y&&p[1].y==p[4].y){//3 for(i=1;i<=4;i++){ if(i==3)continue; xc=xc>p[i].x?xc:p[i].x; } p[3].x=xc; } else if(p[1].y==p[4].y&&p[1].y==p[3].y){//2 for(i=1;i<=4;i++){ if(i==2)continue; xc=xc>p[i].x?xc:p[i].x; } p[2].x=xc; } else if(p[3].y==p[2].y&&p[4].y==p[3].y){//1 for(i=1;i<=4;i++){ if(i==1)continue; xc=xc>p[i].x?xc:p[i].x; } p[1].x=xc; } } else if(thing4()){ int ax[5]; for(i=1;i<=4;i++){ ax[i]=p[i].x; } sort(ax,ax+4); for(i=1;i<=4;i++){ if(ax[2]==p[i].x)break; } } } }
版权声明:本文为博主原创文章,未经博主允许不得转载。