有无大佬看看,WA几次了,/(ㄒoㄒ)/~~
  • 板块UVA1587 盒子 Box
  • 楼主abxxvrv
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/10 22:45
  • 上次更新2024/10/11 13:13:51
查看原帖
有无大佬看看,WA几次了,/(ㄒoㄒ)/~~
1479237
abxxvrv楼主2024/10/10 22:45
#include <stdio.h>
#include <string.h>

int a[6][2];

int main() {
    memset(a, 0, sizeof(a));
    while (scanf("%d %d", &a[0][0], &a[0][1]) != 2) {
        
        int i, j, a1 = 0, b1 = 0, c1 = 0, A = 0, B = 0, C = 0, flag1 = 0, flag2 = 0;
        for (i = 1; i < 6; i++) {
            scanf("%d %d", &a[i][0], &a[i][1]);
        }

        // 找到三个不同的尺寸
        a1 = a[0][0];
        for (i = 0; i < 6; i++) {
            for (j = 0; j < 2; j++) {
                if (a[i][j] != a1) {
                    if (b1 == 0) b1 = a[i][j];
                    else if (c1 == 0 && a[i][j] != b1) c1 = a[i][j];
            }
            }
        }

        // 让每一行大的在前
        for (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;
            }
        }

        // 确保尺寸顺序正确
        if (a1 < b1) { int t = a1; a1 = b1; b1 = t; }
        if (a1 < c1) { int t = a1; a1 = c1; c1 = t; }
        if (b1 < c1) { int t = b1; b1 = c1; c1 = t; }

        // 检查尺寸数量
        for (j = 0; j < 2; j++) {
            A = B = C = 0;
            for (i = 0; i < 6; i++) {
                if (a[i][j] == a1) A++;
                else if (a[i][j] == b1) B++;
                else C++;
            }
            if (j == 0 && (A == 4 && B == 2)) flag1 = 1;
            if (j == 1 && (C == 4 && B == 2)) flag2 = 1;
        }

        if (flag1 && flag2) printf("POSSIBLE\n");
        else printf("IMPOSSIBLE\n");
        
    }
    return 0;
}
2024/10/10 22:45
加载中...