Box,( UVa, 1587 )

题目链接 : https://vjudge.net/problem/UVA-1587

题目思路 :先找出两个相对的面,找出三组面,判断其中两组面不相同的两条边是否与另一组面相同;

 1 #include<stdio.h>
 2 int a[6],b[6];
 3 int main()
 4 {
 5     while(scanf("%d %d",&a[0],&b[0])!=EOF)
 6     {
 7         int p = 1,c[6]={-1,-1,-1};
 8         if(a[0]<b[0]) //将输入的数据按大小排好
 9         {
10             int t;
11             t = a[0];
12             a[0] = b[0];
13             b[0] = t;
14         }
15         for(int i = 1;i < 6;i++)
16         {
17             scanf("%d %d",&a[i],&b[i]);
18             if(a[i]<b[i])
19         {
20             int t;
21             t = a[i];
22             a[i] = b[i];
23             b[i] = t;
24         }
25         }
26         int k = 0,d[6],e[6];
27         for(int i = 0;i < 6;i++ )
28             {
29                 if(i==c[0]||i==c[1]||i==c[2])
30                     continue;
31             for(int j = i+1;j < 6;j++ )
32             {
33                 if(a[i]==a[j]&&b[i]==b[j])
34                 {
35                     d[k] = a[i];
36                     e[k] = b[i];
37                     c[k] = j;
38                     k++;
39                     break;
40                 }
41             }
42             }
43             if(c[0]==-1||c[1]==-1||c[2]==-1) //是否存在3组相同的面
44             {
45                 printf("IMPOSSIBLE
");
46                 continue;
47             }    
48             p = 0;
49             if(d[0] == d[1]) //判断另两边是否与另一组面相同
50             {
51                 if(e[0] == d[2]&&e[1]==e[2]||e[0]==e[2]&&e[1]==d[2])
52                     p = 1;
53             }
54             if(d[0]==e[1])
55             {
56                 if(e[0] == d[2]&&d[1]==e[2]||e[0]==e[2]&&d[1]==d[2])
57                     p = 1;
58             }
59             if(e[0]==d[1])
60             {
61                 if(d[0] == d[2]&&e[1]==e[2]||d[0]==e[2]&&e[1]==d[2])
62                     p = 1;
63             }
64 
65             if(e[0]==e[1])
66             {
67                 if(d[0] == d[2]&&d[1]==e[2]||d[0]==e[2]&&d[1]==d[2])
68                     p = 1;
69             }
70             if(p==1)
71             printf("POSSIBLE
");
72             else
73             printf("IMPOSSIBLE
");
74     }
75     return 0;
76 }
原文地址:https://www.cnblogs.com/Dicer/p/8474228.html