天天看点

UVA 1587 BOX

#include<stdio.h>
#include<string.h>
struct rect{
    int l;
    int w;
};
int main(){
    int order[6];
    struct rect rec[6];
    for(int i=0;i<6;i++){
        order[i]=i;
    }
    while(scanf("%d%d",&rec[0].l,&rec[0].w)!=EOF){
        for(int i=1;i<6;i++){
            scanf("%d%d",&rec[i].l,&rec[i].w);
        }
        int t;
        for(int i=0;i<6;i++){
            if(rec[i].l<rec[i].w){
                t=rec[i].l;
                rec[i].l=rec[i].w;
                rec[i].w=t;
            }
        }
        for(int i=1;i<6;i++){
            for(int j=0;j<=6-i-1;j++){
                if(rec[order[j]].l>rec[order[j+1]].l){
                    t=order[j];
                    order[j] = order[j+1];
                    order[j+1] = t;
                }
                else if(rec[order[j]].l==rec[order[j+1]].l){
                    if(rec[order[j]].w>rec[order[j+1]].w){
                        t=order[j];
                        order[j]=order[j+1];
                        order[j+1]=t;
                    }
                }
            }
        }
        int fg = 1;
        for(int i=0;i<5;i+=2){
            if(rec[order[i]].l!=rec[order[i+1]].l||rec[order[i]].w!=rec[order[i+1]].w){
                fg=0;
                break;
            }
        }
        if(rec[order[2]].l==rec[order[5]].l&&rec[order[0]].l==rec[order[5]].w&&rec[order[0]].w==rec[order[2]].w);
        else fg=0;
        if(fg) printf("POSSIBLE\n");
        else printf("IMPOSSIBLE\n");


    }

    return 0;
}