题意:
给6块木板的长度,判断它们是否可以组成一个长方体。
分析:
模拟,首先判断6块木板是否可以分为3组完全相等的木板,再判断这3组木板是否能组成长方体。
代码:
//poj 2160 //sep9 #include <iostream> #include <algorithm> using namespace std; int vis[8]; int x[8],y[8]; int a[8]; int main() { int i,j; for(i=0;i<6;++i){ scanf("%d%d",&x[i],&y[i]); if(x[i]>y[i]) swap(x[i],y[i]); } int cnt=0,t=0; memset(vis,0,sizeof(vis)); for(i=0;i<6;++i){ if(vis[i]==0){ vis[i]=1; for(j=0;j<6;++j) if(vis[j]==0&&x[j]==x[i]&&y[j]==y[i]){ vis[j]=1; a[t++]=x[i]; a[t++]=y[i]; ++cnt; break; } } } if(cnt==3){ sort(a,a+6); if(a[0]==a[1]&&a[2]==a[3]&&a[4]==a[5]) printf("POSSIBLE"); else printf("IMPOSSIBLE"); } else printf("IMPOSSIBLE"); }
原文地址:http://blog.csdn.net/sepnine/article/details/43336501