1.题目描述:点击打开链接
2.解题思路:先令输入的宽<长,然后找到三对矩形的长宽依次放入mark数组,看他们是否构成了长宽高的所有组合即可。
3.代码:
#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<ctype.h> #include<math.h> int a[6][2]; int mark[6]; int main() { while (scanf("%d%d", &a[0][0], &a[0][1]) == 2) { for (int i = 1; i < 6; i++) scanf("%d%d", &a[i][0], &a[i][1]); for (int i = 0; i < 6; i++) if (a[i][0]>a[i][1]) { int t = a[i][0]; a[i][0] = a[i][1]; a[i][1] = t; } int n = 0; for (int i = 0; i < 5; i++) { if (!a[i][0]) continue; for (int j = i + 1; j < 6; j++) { if (!a[j][0]) continue; if (a[i][0] == a[j][0] && a[i][1] == a[j][1]) { mark[n++] = a[i][0]; mark[n++] = a[i][1]; a[j][0] = 0; break; } } } if (n != 6) printf("IMPOSSIBLE\n"); else { if (mark[0] == mark[2]) { if ((mark[1] == mark[4] && mark[3] == mark[5]) || (mark[1] == mark[5] && mark[3] == mark[4])) { printf("POSSIBLE\n"); goto x1; } else printf("IMPOSSIBLE\n"); } else if (mark[0] == mark[3]) { if ((mark[1] == mark[4] && mark[2] == mark[5]) || (mark[1] == mark[5] && mark[2] == mark[4])) { printf("POSSIBLE\n"); goto x1; } else printf("IMPOSSIBLE\n"); } else if (mark[1] == mark[2]) { if ((mark[0] == mark[4] && mark[3] == mark[5]) || (mark[0] == mark[5] && mark[3] == mark[4])) { printf("POSSIBLE\n"); goto x1; } else printf("IMPOSSIBLE\n"); } else if (mark[1] == mark[3]) { if ((mark[0] == mark[4] && mark[2] == mark[5]) || (mark[0] == mark[5] && mark[2] == mark[4])) { printf("POSSIBLE\n"); goto x1; } else printf("IMPOSSIBLE\n"); } else printf("IMPOSSIBLE\n"); } x1:; } return 0; }