View Code of Problem 3928

#include<stdio.h>

int main()
{
	int rect[3][2]={{0}},i=0,temp_l,temp_w,j=0,n=0,flag=1;
	while(scanf("%d%d",&temp_l,&temp_w)!=EOF)
	{
		if(i>3) 
		{
			for(j=0;j<n-i;j++)
				scanf("%d%d",&temp_l,&temp_w);
			i=0;
			n=0;
		//	printf("%d\t%d\n",n,i);
			printf("IMPOSSIBLE\n");
		}
		else if(n==5&&i<=3&&i>0)
		{
			if(i==1) {
				if(rect[0][0]==rect[0][1])
				printf("POSSIBLE\n");
				else
					printf("IMPOSSIBLE\n");
			}
			if(i==2) 
			{
				if((rect[0][1]==rect[1][0]||rect[0][1]==rect[1][1]||rect[0][0]==rect[1][0]||rect[0][0]==rect[1][1])&&(rect[0][0]==rect[0][1]||rect[1][0]==rect[1][1]))
					printf("POSSIBLE\n");
				else
					printf("IMPOSSIBLE\n");
			}
			else{
				flag=1;
				for(j=1;j<i;j++)
				{
					if(rect[0][0]==rect[j][0])
					{
						flag=0;
						break;
					}
				}
				if(flag)
					for(j=1;j<i;j++)
					{
						if(rect[0][0]==rect[j][1])
							break;
					}
				if(j<i)
				{
					if(flag){
						if((rect[0][1]==rect[3-j][0]&&rect[j][0]==rect[3-j][1])||(rect[0][1]==rect[3-j][1]&&rect[j][0]==rect[3-j][0]))
							printf("POSSIBLE\n");
						else
							printf("IMPOSSIBLE\n");
					}else{
						if((rect[1][1]==rect[3-j][0]&&rect[j][0]==rect[3-j][1])||(rect[1][1]==rect[3-j][1]&&rect[j][0]==rect[3-j][0]))
							printf("POSSIBLE\n");
						else
							printf("IMPOSSIBLE\n");
					}
				}
			}
			i=0;
			n=0;
		}
		else{
			for(j=0;j<i;j++)
			{
				if((rect[j][0]==temp_l&&rect[j][1]==temp_w)||(rect[j][1]==temp_l&&rect[j][0]==temp_w))
					break;
			}
			if(j>=i)
			{
			//	printf("j=%d\n",j);
				rect[i][0]=temp_l;
				rect[i][1]=temp_w;
				i++;
			}
			n++;
		}
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 3928