UVA 1587 Box

1、水題,模擬題。

2、長方體盒子特徵:每個面都與對立面長寬相同。此爲題目判斷條件已,另一個判斷條件爲,每一面與其他面的長寬是否能契合到一起。

3、考察對sort自定義排序的運用。

#include<cstdio>
#include<iostream>
#include<algorithm>

using namespace std;

const int N=6;

struct rec {
	int l,w;
}r[N];

bool cmp(rec a,rec b)       //自定義排序函數,w小的排前面,w一樣的l小的排前面
{
	return a.w<b.w || (a.w==b.w && a.l<b.l);    
}

int main()
{
	int a,b,flag;
	while(cin>>r[0].w>>r[0].l) {
		flag=1;     //設置一個標記

		//輸入數據組並進行長寬值交換,規定長>寬
		if(r[0].w>r[0].l) {
			swap(r[0].w,r[0].l);
		}
		for(int i=1;i<6;++i) {
			cin>>r[i].w>>r[i].l;
			if(r[i].w>r[i].l) {
				swap(r[i].w,r[i].l);
			}
		}
		
		sort(r,r+N,cmp);    //自定義排序數據(爲了方便進行比較
		
		
		//檢查每對板與對立面是否一樣
		for(int i=0;i<N;i+=2) {
			if(r[i].w!=r[i+1].w || r[i].l!=r[i+1].l) {  
				flag=0;
			}
		}
		
		//再檢查長寬高是否能契合在一起
		if(r[0].w!=r[2].w || r[0].l!=r[4].w || r[2].l!=r[4].l) {
			flag=0;
		}

		puts(flag?"POSSIBLE":"IMPOSSIBLE");     //輸出
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章