ZOJ 2659 Box

编程入门 行业动态 更新时间:2024-10-11 23:24:40

<a href=https://www.elefans.com/category/jswz/34/1758311.html style=ZOJ 2659 Box"/>

ZOJ 2659 Box

查看原题

题意

给出六块板的长宽,问是否能组成一个箱子

思路

箱子的话则必有三对相同的长宽,每对保留其中一个的长宽,然后比较三个长宽(6个数字)能否匹配。(A板1和B板1相同匹配,则B板0必和C板其中之一相同匹配,C板另一边和A板0相同匹配)

代码

#include <iostream>
using namespace std;
struct pallet{int width,height;
}pallets[6];
int isSame(pallet a,pallet b){//两板比较是否相同if(a.width==b.width){if(a.height==b.height){return 1;}else return 0;}else if(a.width==b.height){if(a.height==b.width){return 1;}else return 0;}else{return 0;}
}
int isBox(pallet a,pallet b,pallet c){//比较三个长宽是否匹配int flag=0;if(a.width==b.width){if(b.height==c.height){if(c.width==a.height){flag=1;}}else if(b.height==c.width){if(c.height==a.height){flag=1;}}}else if(a.width==c.width){if(c.height=b.height){if(b.width==a.height){flag=1;}}else if(c.height==b.width){if(b.height==a.height){flag=1;}}}return flag;
}
int main() {while(cin>>pallets[0].width>>pallets[0].height){int number=0;for(int i=1;i<6;i++){cin>>pallets[i].width>>pallets[i].height;}for(int i=0;i<6;i++){//把输入转化为小数为width,大数heightif(pallets[i].width>pallets[i].height){int n=pallets[i].width;pallets[i].width=pallets[i].height;pallets[i].height=n;}}for(int i=0;i<6;i++){//给每块板找另一半,找到就停,为下一块找int flag=0;for(int j=i;j<6;j++){if(i!=j&&isSame(pallets[i],pallets[j])&&pallets[j].width!=0&&flag==0){number++;flag=1;pallets[j].width=pallets[j].height=0;}continue;}}pallet temp[3];int step=0;for(int k=0;k<6;k++){//找出留下的三块板if(pallets[k].width!=0){temp[step]=pallets[k];step++;}}for(int i=0;i<3;i++){//按width从小到大冒泡排序,width相同则按height//给height也排是为了防止24 24 22 这样特殊情况for(int j=i;j<3;j++){if(temp[i].width>temp[j].width){pallet swap=temp[i];temp[i]=temp[j];temp[j]=swap;}if(temp[i].width==temp[j].width&&temp[i].height>temp[j].height){pallet swap=temp[i];temp[i]=temp[j];temp[j]=swap;}}}if(number==3&&isBox(temp[0],temp[1],temp[2])) cout<<"POSSIBLE"<<endl;else cout<<"IMPOSSIBLE"<<endl;}return 0;
}

更多推荐

ZOJ 2659 Box

本文发布于:2024-02-11 23:48:43,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1684382.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:ZOJ   Box

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!