习题3-10 盒子(Box, ACM/ICPC NEERC 2004, UVa1587)
#include<bits/stdc++.h> using namespace std; pair<int,int> p[6]; int main() { while(1) { for(int i = 0;i < 6;i++) { if(!(cin >> p[i].first >> p[i].second)) return 0; if(p[i].first > p[i].second) swap(p[i].first,p[i].second); } sort(p,p+6); if(p[0].first == p[1].first && p[0].first == p[2].first && p[0].first == p[3].first && p[0].second == p[1].second && p[0].second == p[4].first && p[0].second == p[5].first && p[2].second == p[4].second && p[2].second == p[5].second) printf("POSSIBLE\n"); else printf("IMPOSSIBLE\n"); } return 0; }
pair<int,int> p[6]
pair型的数组 一个元素保存着两个数字
p[i].first p[i].second 用来表示i元素第一个数字和第二个数字
sort排序 可以对pair型数组排序 先对第一个数排序 在此基础上在对第二个数排序(第一个数优先级最高)