QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#245679#6309. AqrehhoppitreeWA 1ms3656kbC++144.9kb2023-11-10 09:35:022023-11-10 09:35:03

Judging History

你现在查看的是最新测评结果

  • [2023-11-10 09:35:03]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3656kb
  • [2023-11-10 09:35:02]
  • 提交

answer

#include <bits/stdc++.h>

using namespace std;

const int N = 1005;
const int M1[4][4] = {{0, 0, 1, 0},
                      {0, 0, 0, 1},
                      {0, 1, 0, 0},
                      {1, 0, 0, 0}};
const int M2[4][4] = {{0, 0, 0, 1},
                      {0, 1, 0, 0},
                      {0, 0, 1, 0},
                      {1, 0, 0, 0}};

int a[N][N];

signed main()
{
    int T;
    scanf("%d", &T);
    while (T--) {
        int n, m;
        scanf("%d%d", &n, &m);
        if (n == 2) {
            if (m == 2) {
                puts("4");
                puts("11");
                puts("11");
            } else if (m == 3) {
                puts("6");
                puts("111");
                puts("111");
            } else {
                printf("%d\n", 2 * m - m / 4 - (m + 2) / 4);
                for (int i = 1; i <= m; ++i) {
                    if (!(i & 3)) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                }
                puts("");
                for (int i = 1; i <= m; ++i) {
                    if ((i & 3) == 2) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                }
                puts("");
            }
            continue;
        }
        if (m == 2) {
            if (n == 3) {
                puts("6");
                puts("11");
                puts("11");
                puts("11");
            } else {
                printf("%d\n", 2 * n - n / 4 - (n + 2) / 4);
                for (int i = 1; i <= n; ++i) {
                    if (!(i & 3)) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                    if ((i & 3) == 2) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                    puts("");
                }
            }
            continue;
        }
        if (n == 3) {
            if (m == 3) {
                puts("9");
                puts("111");
                puts("111");
                puts("111");
            } else {
                printf("%d\n", 3 * m - m / 4 * 2 - (m + 2) / 4);
                for (int i = 1; i <= m; ++i) {
                    if ((i & 3) == 2) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                }
                puts("");
                for (int i = 1; i <= m; ++i) {
                    if (!(i & 3)) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                }
                puts("");
                for (int i = 1; i <= m; ++i) {
                    if (!(i & 3)) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                }
                puts("");
            }
            continue;
        }
        if (m == 3) {
            printf("%d\n", 3 * n - n / 4 * 2 - (n + 2) / 4);
            for (int i = 1; i <= n; ++i) {
                if ((i & 3) == 2) {
                    putchar('0');
                } else {
                    putchar('1');
                }
                if (!(i & 3)) {
                    putchar('0');
                } else {
                    putchar('1');
                }
                if (!(i & 3)) {
                    putchar('0');
                } else {
                    putchar('1');
                }
                puts("");
            }
            continue;
        }
        if ((n & 3) == (m & 3)) {
            printf("%d\n", n * m - (n - (n & 3)) / 4 * m - (m - (m & 3)) / 4 * (n & 3) - (((n & 3) >= 1) && ((n & 3) == 3)) - (((n & 3) == 3) && ((m & 3) >= 2)));
            for (int i = 1; i <= n; ++i) {
                for (int j = 1; j <= m; ++j) {
                    if (M1[(i - 1) & 3][(j - 1) & 3]) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                }
                puts("");
            }
        } else {
            printf("%d\n", n * m - (n - (n & 3)) / 4 * m - (m - (m & 3)) / 4 * (n & 3) - (((n & 3) >= 2) && ((n & 3) >= 2)) - (((n & 3) == 3) && ((m & 3) == 3)));
            for (int i = 1; i <= n; ++i) {
                for (int j = 1; j <= m; ++j) {
                    if (M2[(i - 1) & 3][(j - 1) & 3]) {
                        putchar('0');
                    } else {
                        putchar('1');
                    }
                }
                puts("");
            }
        }
    }
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3600kb

input:

3
2 2
3 4
3 8

output:

4
11
11
9
1011
1110
1110
18
10111011
11101110
11101110

result:

ok ok (3 test cases)

Test #2:

score: -100
Wrong Answer
time: 1ms
memory: 3656kb

input:

361
2 2
2 3
2 4
2 5
2 6
2 7
2 8
2 9
2 10
2 11
2 12
2 13
2 14
2 15
2 16
2 17
2 18
2 19
2 20
3 2
3 3
3 4
3 5
3 6
3 7
3 8
3 9
3 10
3 11
3 12
3 13
3 14
3 15
3 16
3 17
3 18
3 19
3 20
4 2
4 3
4 4
4 5
4 6
4 7
4 8
4 9
4 10
4 11
4 12
4 13
4 14
4 15
4 16
4 17
4 18
4 19
4 20
5 2
5 3
5 4
5 5
5 6
5 7
5 8
5 9
5 1...

output:

4
11
11
6
111
111
6
1110
1011
8
11101
10111
9
111011
101110
11
1110111
1011101
12
11101110
10111011
14
111011101
101110111
15
1110111011
1011101110
17
11101110111
10111011101
18
111011101110
101110111011
20
1110111011101
1011101110111
21
11101110111011
10111011101110
23
111011101110111
1011101110111...

result:

wrong answer 1s are not connected. (test case 41)