题意:给你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; }