UVa 1587 Box

来源:互联网 发布:vscode搭建c环境 编辑:程序博客网 时间:2024/05/01 22:33


略水的一题

给你六个面,判断能不能组成长方体

定义一个mian的结构体{

int 长;

int 宽;

};

输入的时候严格按照长大于宽输入

然后sort

长相等的时候按宽排序

这样三对面就排在一起了

然后判断

第一次写这么长的判断  Orz

一次过。~( ̄▽ ̄~)(~ ̄▽ ̄)~ 


ps:刚开始敲的时候以为条件判断没法处理所有的情况

不过敲着敲着发现只有两种情况



#include<stdio.h>#include<algorithm>using namespace std;struct mian{    int c;    int k;}p[10];bool so(mian a,mian b){    if(a.c!=b.c)        return a.c>b.c;    return a.k>b.k;}bool operator ==(mian a,mian b){    if(a.c==b.c && a.k==b.k)        return true;    return false;}int main(){    int a,b;    while(~scanf("%d %d",&a,&b)){        int x=max(a,b);        int y=min(a,b);        p[0].c=x;        p[0].k=y;        for(int i=1;i<6;i++){            scanf("%d %d",&a,&b);            x=max(a,b);            y=min(a,b);            p[i].c=x,p[i].k=y;        }        sort(p,p+6,so);        if(p[0]==p[1] && p[3]==p[2] && p[4]==p[5] && p[0].c==p[3].c           && ((p[5].c==p[0].k && p[2].k==p[4].k)|| (p[5].c==p[3].k && p[0].k==p[5].k)))            printf("POSSIBLE\n");        else            printf("IMPOSSIBLE\n");    }return 0;}



0 0
原创粉丝点击