zoukankan      html  css  js  c++  java
  • UVa 1587 Box

    判断所给的六组木板的长宽能不能组成长方体

    组成长方体一定是两两相等,长宽高固定,且三组各为长宽,长高,宽高。依次为依据解题。

    附AC代码:

     1 #include<iostream>
     2 #include<set>
     3 #include<cstring>
     4 #include<cstdio>
     5 #include<algorithm>
     6 using namespace std;
     7 
     8 struct face{
     9     int x,y;
    10 }a[6];
    11 
    12 int cmp(face a,face b){
    13     if(a.x==b.x)
    14     return a.y<b.y;
    15     return a.x<b.x;
    16 }
    17 
    18 int main(){
    19     while(cin>>a[0].x>>a[0].y>>a[1].x>>a[1].y>>a[2].x>>a[2].y>>a[3].x>>a[3].y>>a[4].x>>a[4].y>>a[5].x>>a[5].y){
    20         set<int> temp;
    21         for(int i=0;i<6;i++){
    22             if(a[i].x>a[i].y)
    23             swap(a[i].x,a[i].y);
    24             temp.insert(a[i].x);
    25             temp.insert(a[i].y);
    26         }
    27         if(temp.size()>3){//剔除掉数字数目大于3的情况 
    28             cout<<"IMPOSSIBLE"<<endl;
    29             continue;
    30         }
    31         else{
    32             sort(a,a+6,cmp);
    33             if(memcmp(a,a+1,sizeof(face))||memcmp(a+2,a+3,sizeof(face))||memcmp(a+4,a+5,sizeof(face))){//判断是否两两相等 
    34                 cout<<"IMPOSSIBLE"<<endl;
    35                 continue;
    36             }
    37             if(a[0].x!=a[2].x||a[0].y!=a[4].x||a[2].y!=a[4].y){//判断是否只有一套长宽高 
    38                 cout<<"IMPOSSIBLE"<<endl;
    39                 continue;
    40             }
    41             cout<<"POSSIBLE"<<endl;
    42         }
    43     }
    44     return 0;
    45 } 
  • 相关阅读:
    第09组 Alpha事后诸葛亮
    第09组 Alpha冲刺(4/4)
    第09组 Alpha冲刺(3/4)
    第09组 Alpha冲刺(2/4)
    第09组 Alpha冲刺(1/4)
    机器学习第二次作业
    机器学习第一次作业
    机器学习第一次个人作业
    第04组 Beta冲刺(4/4)
    第04组 Beta冲刺(3/4)
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/5671875.html
Copyright © 2011-2022 走看看