• UVA1587 UVALive3214 POJ2160 Box


    Regionals 2004 >> Europe - Northeastern

    问题链接:UVA1587 UVALive3214 POJ2160 Box

    问题简述:给出六组整数,问能否构成六面体。

    这个题用C语言做的毫无技术含量,也许用C++来写会好一些。


    AC的C语言程序如下:

    /* UVA1587 UVALive3214 POJ2160 Box */
    
    #include <stdio.h>
    
    #define MAXN 6
    
    struct {
        int w, h;
        int count;
    } a[MAXN];
    int acount;
    
    void swap(int n)
    {
        if(a[n].w > a[n].h) {
            int temp = a[n].w;
            a[n].w = a[n].h;
            a[n].h = temp;
        }
    }
    
    int checkok()
    {
        if(a[0].w == a[1].w && a[0].h == a[2].w && a[1].h == a[2].h)
            return 1;
        else if(a[0].w == a[1].w && a[0].h == a[2].h && a[1].h == a[2].w)
            return 1;
        else if(a[0].w == a[1].h && a[0].h == a[2].w && a[1].w == a[2].h)
            return 1;
        else if(a[0].w == a[1].h && a[0].h == a[2].h && a[1].w == a[2].w)
            return 1;
        else if(a[0].h == a[1].w && a[0].w == a[2].w && a[1].h == a[2].h)
            return 1;
        else if(a[0].h == a[1].w && a[0].w == a[2].h && a[1].h == a[2].w)
            return 1;
        else if(a[0].h == a[1].h && a[0].w == a[2].w && a[1].w == a[2].h)
            return 1;
        else if(a[0].h == a[1].h && a[0].w == a[2].h && a[1].w == a[2].w)
            return 1;
        else
            return 0;
    }
    
    int main(void)
    {
        int i, j;
    
        while(scanf("%d%d", &a[0].w, &a[0].h) != EOF) {
            a[0].count = 1;
            swap(0);
    
            acount = 1;
            for(i=1; i<MAXN; i++) {
                scanf("%d%d", &a[acount].w, &a[acount].h);
                a[acount].count = 1;
                swap(acount);
    
                /* 去重复 */
                for(j=0; j<acount; j++)
                    if(a[j].w == a[acount].w && a[j].h == a[acount].h && a[j].count != 2) {
                        a[j].count++;
                        acount--;
                        break;
                    }
                acount++;
            }
    
            if(acount != 3)
                printf("IMPOSSIBLE
    ");
            else if(checkok())
                printf("POSSIBLE
    ");
            else
                printf("IMPOSSIBLE
    ");
        }
    
        return 0;
    }


  • 相关阅读:
    你知道RAID的初始化过程吗?
    Dynamic Disk Pool技术解析
    Ubuntu-16.04.6 安装 oracle 11.2.0.4 数据库database软件
    Ubuntu-16.04.6 安装 oracle 12.2.0.1 数据库database软件
    IDEA 快捷键
    Redis 常用操作命令
    甘特图
    PERT图
    现金贷
    线上信贷提供解决方案
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564511.html
Copyright © 2020-2023  润新知