zoukankan      html  css  js  c++  java
  • 紫书第三章训练 UVA 1587 Box by 16 BobHuang

    Ivan works at a factory that produces heavy machinery. He has a simple job — he knocks up wooden 
    boxes of different sizes to pack machinery for delivery to the customers. Each box is a rectangular 
    parallelepiped. Ivan uses six rectangular wooden pallets to make a box. Each pallet is used for one side 
    of the box. 


    Joe delivers pallets for Ivan. Joe is not very smart and often makes mistakes — he brings Ivan 
    pallets that do not fit together to make a box. But Joe does not trust Ivan. It always takes a lot of 
    time to explain Joe that he has made a mistake. 
    Fortunately, Joe adores everything related to computers and sincerely believes that computers never 
    make mistakes. Ivan has decided to use this for his own advantage. Ivan asks you to write a program 
    that given sizes of six rectangular pallets tells whether it is possible to make a box out of them. 
    Input 
    Input file contains several test cases. Each of them consists of six lines. Each line describes one pallet 
    and contains two integer numbers w and h (1 ≤ w, h ≤ 10 000) — width and height of the pallet in 
    millimeters respectively. 
    Output 
    For each test case, print one output line. Write a single word ‘POSSIBLE’ to the output file if it is 
    possible to make a box using six given pallets for its sides. Write a single word ‘IMPOSSIBLE’ if it is not 
    possible to do so. 
    Sample Input 
    1345 2584 
    2584 683 
    2584 1345 
    683 1345 
    683 1345 
    2584 683 
    1234 4567 
    1234 4567 
    4567 4321 
    4322 4567 
    4321 1234 
    4321 1234

    Sample Output 
    POSSIBLE 
    IMPOSSIBLE

    这道题就是检验啊,检验给你的6个面是不是长方体,这6个面你要单独保存会比较好?我是没有,但是我感觉那样思路应该更清晰,其实也就是两两配对,拿flag标记下,
    然后就wa了,想了想长方体三边是a,b,c那么每两组之间必有两个数会想等的,加上这个条件就AC了。
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {int a[12];
     5 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]){
     6     sort(a,a+2);
     7     sort(a+2,a+4);
     8     sort(a+4,a+6);
     9     sort(a+6,a+8);
    10     sort(a+8,a+10);
    11     sort(a+10,a+12);
    12     int f[6];
    13     for(int i=0;i<6;i++)
    14     f[i]=1;
    15     int s=1;
    16     for(int i=0;i<12;i+=2){
    17         if(f[i/2])
    18         for(int j=i+2;j<12;j+=2)
    19         if(f[j/2]){
    20             if(a[i]==a[j]&&a[i+1]==a[j+1])
    21                 f[i/2]=f[j/2]=0;
    22             else if(!(a[i]==a[j]||a[i+1]==a[j+1]||a[i]==a[j+1]||a[i+1]==a[j]))
    23                 s=0;
    24         }
    25     }
    26     for(int i=0;i<6;i++)
    27     if(f[i]) {s=0;break;}
    28     if(s)printf("POSSIBLE
    ");
    29     else printf("IMPOSSIBLE
    ");
    30 
    31 }
    32 return 0;}
  • 相关阅读:
    计网第一章——基本概念
    计网第二章——应用层
    命令行测试邮件发送工具mailsend-go
    CentOS-7-x86_64-DVD-2009 rpm包列表(centos7.9)
    CentOS-7-x86_64-Everything-2009 rpm包列表(CentOS7.9)
    Centos发行版ISO镜像中rpm包列表
    nginx使用记录
    centos resolv.conf
    python cookbook
    ansible中变量和主机名
  • 原文地址:https://www.cnblogs.com/tzcacm/p/6801477.html
Copyright © 2011-2022 走看看