zoukankan      html  css  js  c++  java
  • 盒子(Box, UVa1587)

    题目:

    给定6个矩形的长和宽wi 和 hi(1<=wi, hi<=1000),判断它们是否构成长方体的6个面。

    分析

    如果一组数据能构成长方体,则6个面满足:

    a, b

    a, b

    a, c

    a, c

    b, c

    b, c

    其中 a<=b <= c

    如果把输入的数据排序之后,很容易进行判断,即 1, 2组,3,4组,5,6 组分别相等。

    且1,3的x相等,2,4的y相等,1组的y与5组的x相等。

    c实现

    #include<stdio.h>
    
    //定义结构体存储宽高 
    struct pallet{
        int x;
        int y;
    }pallet[6];
    
    //交换数据 
    void swap(int *a,int *b){
        int t=*a;
        *a = *b;
        *b = t;
    }
    //对6个面排序,按 a,b; a,b; a,c; a,c; b,c;b,c; 总体为a<b<c 
    void sort(){
        for(int i=5;i>=0;i--){
            for(int j=0;j<i;j++){
                if(pallet[j].x>pallet[j+1].x){
                    swap(&pallet[j].x,&pallet[j+1].x);
                    swap(&pallet[j].y,&pallet[j+1].y);
                }else if(pallet[j].x==pallet[j+1].x && pallet[j].y>pallet[j+1].y){
                    swap(&pallet[j].x, &pallet[j+1].x);
                    swap(&pallet[j].y,&pallet[j+1].y);
                }
            }
        }    
    }
    //检验如果满足如下条件,则impossible 
    int check(){
        if(pallet[0].x== pallet[1].x && pallet[0].y==pallet[1].y
         && pallet[2].x==pallet[3].x && pallet[2].y == pallet[3].y
         && pallet[4].x == pallet[5].x && pallet[4].y == pallet[5].y
         && pallet[0].x == pallet[2].x && pallet[2].y == pallet[4].y
         && pallet[0].y == pallet[4].x){
             return 1;
         }
         return 0;
    }
    
    int main()
    {
        while(scanf("%d%d",&pallet[0].x, &pallet[0].y)==2){
            //保证 x< y 
            if(pallet[0].x > pallet[0].y){
                swap(&pallet[0].x,&pallet[0].y);
            }
            for(int i=1;i<6;i++){
                scanf("%d%d",&pallet[i].x,&pallet[i].y);
                if(pallet[i].x>pallet[i].y){
                    swap(&pallet[i].x,&pallet[i].y);
                }
            }
            sort();
            
            if(check()){
                printf("POSSIBLE
    ");
            }else{
                printf("IMPOSSIBLE
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    对象生成xml
    Memcache使用指南
    java实现AES加密解密
    Log4j常用的配置说明
    java利用dom4j对任意xml的解析
    一个不错的JDBC连接池教程
    jwt介绍
    model基础操作
    图书管理系统前端
    图书管理系统后端
  • 原文地址:https://www.cnblogs.com/Vincent-yuan/p/13028190.html
Copyright © 2011-2022 走看看