码迷,mamicode.com
首页 > 其他好文 > 详细

UVa1587 Box

时间:2015-06-26 09:07:25      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

#include <iostream>
#include <algorithm>
#include <set>
using namespace std;

int main()
{
    set<int> s; // 12个数字中不能出现3个以上不同的值,最多只有三种值:长、宽、高
    int face[6];
    int i = 0, w, h;
    while (cin >> w >> h)
    {
        if (s.size() <= 3)
        {
            s.insert(w);
            s.insert(h);
            if (w > h)
                face[i] = (h << 16) | w; // 充分利用条件 1 <= w,h <= 10000
            else
                face[i] = (w << 16) | h;
        }
        
        if (++i == 6)
        {
            if (s.size() <= 3)
            {
                sort(face, face+6);
                for (i = 0; i < 6; i += 2)
                { // 判断是否存在3对相等的面
                    if (face[i] != face[i+1])
                        break;
                }
                if (i == 6)
                    cout << "POSSIBLE" << endl;
                else
                    cout << "IMPOSSIBLE" << endl;
            }
            else
            {
                cout << "IMPOSSIBLE" << endl;
            }
            i = 0;
            s.clear();
        }
    }

    return 0;
}

UVa1587 Box

标签:

原文地址:http://www.cnblogs.com/danny1221/p/4601451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!