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;}
  • 相关阅读:
    LeetCode Trapping Rain Water
    [Elasticsearch] 部分匹配 (四)
    SPOJ VLATTICE Visible Lattice Points (莫比乌斯反演基础题)
    SICP 习题 (1.35)解题总结
    光流(optical flow)和openCV中实现
    LZMA C# SDK 结合 UPK 打包压缩 多目录 Unity3d实例
    tabhost实现android菜单切换
    12306火车票订票失败!您的身份信息未经核验,一般人是不能订票的,我订了,可是没成功。。。
    WebService学习之旅(四)Apache Axis2的安装
    WebService学习之旅(三)JAX-WS与Spring整合发布WebService
  • 原文地址:https://www.cnblogs.com/tzcacm/p/6801477.html
Copyright © 2011-2022 走看看