#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.