UVa 1587 - Box

来源:互联网 发布:聚合数据 公司 编辑:程序博客网 时间:2024/05/02 02:21

下午上Acm课看不清投影,就看了了看书,这道题感觉还能简单点,就回来先做了,交了三次Ac的,第一次是忽略了第一个长方形的长宽不在后来的循环里,没有进行大小交换,第二次是没有删除调试用的输出数组b值的语句。。


#include <stdio.h>#include <string.h>int main(){    int i,j,temp,k,l,x,count;    int a[6][2];    int b[6];    int c[6][2];    while(scanf("%d%d",&a[0][0],&a[0][1])!=EOF)    {        if(a[0][0]>a[0][1])        {            temp=a[0][0];            a[0][0]=a[0][1];            a[0][1]=temp;        }        x=1,count=0;        memset(b,0,sizeof(b));        c[0][0]=c[0][1]=0;        for(i=1;i<6;i++)        {            scanf("%d%d",&a[i][0],&a[i][1]);            c[i][0]=c[i][1]=0;            if(a[i][0]>a[i][1])            {                temp=a[i][0];                a[i][0]=a[i][1];                a[i][1]=temp;            }        }        for(i=0;i<6;i++)        {            for(j=0;j<6;j++)            {                for(k=0;k<2;k++)                {                    if(a[i][k]==a[j][0]&&i!=j)                        c[i][k]++;                    if(a[i][k]==a[j][1]&&i!=j)                        c[i][k]++;                }                if(a[i][0]==a[j][0]&&a[i][1]==a[j][1]&&i!=j)                    b[i]++;            }            if(a[i][0]==a[i][1])                count++;        }        if(count==0&&b[0]==5)            x=0;        if(count>2&&c[0][0]!=10)            x=0;        for(i=0;i<6;i++)        {            if(!x)                goto END;            if(!b[i])                x=0;            for(j=0;j<2;j++)                if(c[i][j]<3)                    x=0;        }        END:        if(x)            printf("POSSIBLE\n");        else            printf("IMPOSSIBLE\n");    }    return 0;}


0 0
原创粉丝点击