自测可以通过,但是由于网络的原因,无法在oj上测试,如果有人看的话,会写思路,错的话,请多包涵!!
typedef struct boxs
{
int w;//长
int h;//宽
}box;
int main()
{
box b[6],temp;
int i,j,t=0,flag=1;
for(i=0;i<6;i++)
{
scanf("%d %d",&b[i].w,&b[i].h);
if(b[i].w<b[i].h)
{
t=b[i].w;
b[i].w=b[i].h;
b[i].h=t;
}
}
int countn=0;
for(i=0;i<6;i++)
{
countn=0;
for(j=0;j<6;j++)
{
if(b[i].w==b[j].w&&b[i].h==b[j].h)
countn++;
}
if(countn%2!=0)
{
flag=0;
break;
}
}
if(flag==0)
{
printf("INPOSSIBLE\n");
return 0;
}
countn=0;
for(i=0;i<6;i++)
{
countn=0;
for(j=0;j<6;j++)
{
if(b[i].h==b[j].h)
countn++;
if(b[i].h==b[j].w)
countn++;
}
if(countn%4!=0)
{
flag=0;
break;
}
countn=0;
for(j=0;j<6;j++)
{
if(b[i].w==b[j].h)
countn++;
if(b[i].w==b[j].w)
countn++;
}
if(countn%4!=0)
{
flag=0;
break;
}
}
if(flag==0)
{
printf("INPOSSIBLE\n");
}
else
printf("POSSIBLE\n");
return 0;
}```
本文介绍了一个关于盒子匹配的问题,通过定义结构体存储盒子的长和宽,并使用算法判断是否有可能将六个盒子两两配对。代码中实现了输入六个盒子尺寸,进行预处理使长宽有序,再检查每个尺寸出现次数是否满足配对条件,最后输出匹配可能性。
319

被折叠的 条评论
为什么被折叠?



