Box UVA - 1587

注意,这道题思路可以把长宽确定好,短的放前面即可,然后用pair保存并排序,如果第一个和第二个,第三个和第四个,第五个和第六个相同且第一个的x和第二个的x,第一个的y和第三个的x,第二个的y和第三个的y相同才行,因为长方体三条边abc,设a<b<c,那么(a,b)排在最前面(a,c)边第二,(b,c)第三,这和pair的特性有关,先比第一个相同比第二个,这样,第一类的x就和第二类的x相同了,等等,不然无法成为长方体。

#include <bits/stdc++.h>
using namespace std;
int main()
{
	int x, y;
	while(true)
	{
		bool flag = true;
		vector<pair<int, int> > v;
		for(int i = 0; i < 6; i++)
		{
			if(scanf("%d%d", &x, &y) == EOF)
				return 0;
			if(x > y)
				swap(x, y);
			v.push_back(make_pair(x, y));
		}
		sort(v.begin(), v.end());
		for(int i = 0; i < 6; i += 2)
		{
			if(v[i] != v[i + 1])
				flag = false;
		}
		if(!(v[0].first == v[2].first && v[0].second == v[4].first && v[2].second == v[4].second))
			flag = false;
		if(flag)
			printf("POSSIBLE\n");
		else
			printf("IMPOSSIBLE\n");
	}
	return 0;
}

  

posted @ 2020-05-13 21:36  funforever  阅读(110)  评论(0编辑  收藏  举报