题意:给你6个面判断他们是否构成一个长方体。
题目:https://cn.vjudge.net/contest/220166#problem/J
思路:先将输入的两个数排序然后在对6个面排序,先确定第2个面在确定4个高 在确定其与的面。
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int>pll;
vector<pll>st;
int a[13];
int main(){
//freopen("data.in","r",stdin);
while(cin>>a[0]>>a[1]>>a[2]>>a[3]>>a[4]>>a[5]>>a[6]>>a[7]>>a[8]>>a[9]>>a[10]>>a[11]){
st.clear();
for(int i=0;i<12;i+=2){
if(a[i]>a[i+1])
swap(a[i],a[i+1]);
pll t={a[i],a[i+1]};
st.push_back(t);
}
sort(st.begin(),st.end());
int ok=0;
if(st[0].first!=st[1].first||st[0].second!=st[1].second)
ok=1;
else{
if(st[2].second!=st[3].second||st[2].second!=st[4].second||st[2].second!=st[5].second)
ok=1;
else{
if(st[0].first!=st[2].first||st[0].first!=st[3].first)
ok=1;
else{
if(st[0].second!=st[4].first||st[0].second!=st[5].first)
ok=1;
}
}
}
if(ok)
cout<<"IMPOSSIBLE"<<endl;
else
cout<<"POSSIBLE"<<endl;
}
return 0;
}
本文介绍了一种算法来判断六个给定的矩形面是否能组成一个长方体。通过排序和比较这些面的数据,可以有效判断它们是否符合长方体的结构特征。
506

被折叠的 条评论
为什么被折叠?



