france

https://github.com/francecil

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
#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;
        		
        	}
        	
        }
}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

posted on 2014-08-11 16:42  france  阅读(191)  评论(0编辑  收藏  举报