水题。判断给你6个长方形,是否可以组成长方体。
我给各个长方形按边排序,判断一下就OK了。
下面的AC的代码:
#include <iostream>
#include <algorithm>
using namespace std;
struct data
{
int l, r;
};
int cmp(data a, data b)
{
if(a.l != b.l)
return a.l < b.l;
else
return a.r < b.r;
}
bool equ(data a, data b)
{
if(a.l == b.l && a.r == b.r)
return true;
else
return false;
}
int main()
{
// freopen("1587.txt", "r", stdin);
data D[6];
int i;
while(cin >> D[0].l >> D[0].r)
{
if(D[0].l > D[0].r)
swap(D[0].l, D[0].r);
for(i = 1; i < 6; i++)
{
cin >> D[i].l >> D[i].r;
if(D[i].l > D[i].r)
swap(D[i].l, D[i].r);
}
sort(D, D + 6, cmp);
int flag = 0;
if(equ(D[0], D[1]) && equ(D[2], D[3]) && equ(D[4], D[5]))
{
if(D[0].l == D[2].l && D[4].l == D[0].r && D[4].r == D[2].r)
flag = 1;
}
if(flag)
cout << "POSSIBLE" << endl;
else
cout << "IMPOSSIBLE" << endl;
}
return 0;
}