3.10 Box UVA1587

来源:互联网 发布:java重写hashcode方法 编辑:程序博客网 时间:2024/06/06 03:00

直接暴力if,反正只要判断三个面就行了

要是想写的漂亮点可以排个序判断,套个循环读入什么的

#include <stdio.h>int main(){    struct rec    {        int x;        int y;    }a, b, c, d, e, f, g[6];    int i, j;    while( scanf("%d",&a.x) != EOF )    {        scanf("%d",&a.y);        scanf("%d%d",&b.x,&b.y);        scanf("%d%d",&c.x,&c.y);        scanf("%d%d",&d.x,&d.y);        scanf("%d%d",&e.x,&e.y);        scanf("%d%d",&f.x,&f.y);        g[0] = a;        g[1] = b;        g[2] = c;        g[3] = d;        g[4] = e;        g[5] = f;        int num = 0;        for(i = 0; i < 6; i += 2)            for(j = i + 1;  j <6; j++)            {                if( (g[i].x == g[j].x&&g[i].y==g[j].y)||(g[i].y==g[j].x&&g[i].x==g[j].y))                {                    struct rec m = g[i+1];                    g[i+1] = g[j];                    g[j] = m;                    num++;                    break;                }            }        if( num != 3 )        {            printf("IMPOSSIBLE\n");            continue;        }        if(g[0].x == g[2].x && ((g[0].y==g[4].x&&g[2].y==g[4].y)||(g[0].y==g[4].y&&g[2].y==g[4].x)))        {            printf("POSSIBLE\n");            continue;        }        if(g[0].x == g[2].y && ((g[0].y==g[4].x&&g[2].x==g[4].y)||(g[0].y==g[4].y&&g[2].x==g[4].x)))        {            printf("POSSIBLE\n");            continue;        }        if(g[0].y == g[2].y && ((g[0].x==g[4].x&&g[2].x==g[4].y)||(g[0].x==g[4].y&&g[2].x==g[4].x)))        {            printf("POSSIBLE\n");            continue;        }        if(g[0].y == g[2].x && ((g[0].x==g[4].x&&g[2].y==g[4].y)||(g[0].x==g[4].y&&g[2].y==g[4].x)))        {            printf("POSSIBLE\n");            continue;        }        printf("IMPOSSIBLE\n");    }    return 0;}

原创粉丝点击