UVA 1587
阿新 • • 發佈:2018-12-11
檢視所給的資料是否能組成長方體,我的思路:三個值 a b h 假設a>b>h,那麼能組成長方體的話,肯定是三組相同的資料,對他們進行排序,檢視相隔的資料是否相等。最大的邊是a b,其次 a h,最後b h,分別進行比較,成立的話就是可以組成,否則就是不可以。
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; struct box { int max; int min; int v; }; bool operator== (box a,box b) { if(a.max==b.max && a.min==b.min) return true; return false; } bool comp(box a,box b) { return a.v>b.v; } int main(int argc, char const *argv[]) { box data[6]; int a,b; int i=0; while(cin>>a>>b) { i=i%6; data[i].max=a>=b?a:b; data[i].min=a<b?a:b; data[i].v=a+b; i++; if(i!=6) continue; sort(data,data+6,comp); bool flag=true; for(int j=0; j<5; j+=2) { if(data[j]==data[j+1]); else flag=false; } if(flag) { if(data[0].max==data[2].max && data[0].min==data[4].max && data[2].min==data[4].min) cout<<"POSSIBLE\n"; else cout<<"IMPOSSIBLE\n"; } else cout<<"IMPOSSIBLE\n"; } return 0; }