uva 1587 Box
2016-04-09 21:18
309 查看
#include<iostream> #include<algorithm> #include<cstdio> using namespace std; typedef struct node { int w; int l; }r[6]; void swap0(int a,int b) { int t; t=a; a=b; b=t; } void swap1(node r[6]) { for(int i=0;i<6;i++) { if(r[i].w>r[i].l) { r[i].w=r[i].w+r[i].l; r[i].l=r[i].w-r[i].l; r[i].w=r[i].w-r[i].l; } } } void swap2(node r[6]) { for(int i=0;i<5;i++) { int flag=i; for(int j=i+1;j<6;j++) { if(r[flag].w>r[j].w) flag=j; if(r[flag].w==r[j].w) { if(r[flag].l>r[j].l) flag=j; } } swap(r[flag].w,r[i].w); swap(r[flag].l,r[i].l); } } int main() { node r[6]; while(scanf("%d%d",&r[0].w,&r[0].l)!=EOF) { int cnt=0; for(int i=1;i<6;i++) cin>>r[i].w>>r[i].l; swap1(r); swap2(r); for(int i=0;i<6;i=i+2) if(r[i].w==r[i+1].w&&r[i].l==r[i+1].l) cnt++; if(cnt==3) { int p[6]; for(int i=0;i<6;i=i+2) { p[i]=r[i].w; p[i+1]=r[i].l; } sort(p,p+6); int count=0; for(int i=0;i<6;i=i+2) if(p[i]==p[i+1]) count++; for(int i=0;i<6;i++) if(p[i]==0) count=0; if(count==3) cout<<"POSSIBLE"<<endl; else cout<<"IMPOSSIBLE"<<endl; } else cout<<"IMPOSSIBLE"<<endl; } return 0; }
相关文章推荐
- HDU 4715 Difference Between Primes (筛法求素数)
- xshell利用linux rz sz 命令上传、下载文件
- java基础知识
- 京东2016春招(实习)笔试+编程题
- JSP九大内置对象详解(一)
- 青蛙的约会(扩展gcd)
- uva 1588 Kickdown
- 欧拉函数扩展公式(10哈工大多校)(3501)
- 从无头单链表中删除节点
- 详解动态规划——邹博讲动态规划
- 移动端touch事件影响click事件以及在touchmove添加preventDefault导致页面无法滚动的解决方法
- leetcode Search a 2D Matrix
- Mac下安装redis(微原创)
- java基础知识整理(3)
- 值得注意的小细节
- hdoj-1859-最小长方形
- JNI - Call Method(Callback Call java methods from c)
- 设计模式之状态模式
- C#中常用容器的使用与底层数据结构
- HDU 2104 hide handkerchief