当前位置: 代码迷 >> 综合 >> Box UVA - 1587
  详细解决方案

Box UVA - 1587

热度:63   发布时间:2023-10-13 14:23:09.0

问题描述:结构体,条件判断

03pie’s solution for [UVA-1587]:
题目链接

#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\n");  else if(checkok())  printf("POSSIBLE\n");  else  printf("IMPOSSIBLE\n");  } return 0;  
}