先排个序,相对位置就确定了
一定是:长: a a a a b b
宽: b b c c c c
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 struct P{ 5 int a,b; 6 }s[20]; 7 bool flag; 8 bool cmp(P x,P y) 9 { 10 if(x.a==y.a) return x.b<y.b; 11 return x.a<y.a; 12 } 13 int main() 14 { 15 while(cin>>s[1].a>>s[1].b) 16 { 17 for(int i=2;i<=6;i++) cin>>s[i].a>>s[i].b; 18 for(int i=1;i<=6;i++) if(s[i].a>s[i].b) swap(s[i].a,s[i].b); 19 flag=1; 20 sort(s+1,s+7,cmp); 21 for(int i=2;i<=4;i++) 22 if(s[i].a!=s[i-1].a) 23 { 24 flag=0; break; 25 } 26 27 for(int i=4;i<=6;i++) 28 if(s[i].b!=s[i-1].b) 29 { 30 flag=0; break; 31 } 32 if(s[1].b!=s[2].b||s[2].b!=s[5].a||s[5].a!=s[6].a) flag=0; 33 if(flag) puts("POSSIBLE"); 34 else puts("IMPOSSIBLE"); 35 } 36 }