问题描述:结构体,条件判断
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;
}