QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#152520#6309. Aqrechen_zexingWA 1ms3788kbC++172.5kb2023-08-28 11:00:452023-08-28 11:00:45

Judging History

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

  • [2023-08-28 11:00:45]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3788kb
  • [2023-08-28 11:00:45]
  • 提交

answer

#pragma GCC optimize("Ofast,unroll-loops")
#include <bits/stdc++.h>
using namespace std;
int a[1005][1005];
int main() {
    int T = 1, kase = 0;
    cin >> T;
    while (T--) {
        int n, m;
        cin >> n >> m;
        if (n <= 3 && m <= 3) {
            printf("%d\n", n * m);
            for (int i = 1; i <= n; i++, puts(""))
                for (int j = 1; j <= m; j++)
                    printf("1");
        }
        else if (n == 3) {
            int ans=m/4*9+m%4*3-(m%4>1);
            printf("%d\n",ans);
            for(int i=1;i<=n;i++,puts(""))
                for(int j=1;j<=m;j++){
                    if(j%4==2&&i==3||j%4==0&&i!=3) printf("0");
                    else printf("1");
                }
        }
        else if (m == 3) {
            int ans=n/4*9+n%4*3-(n%4>1);
            printf("%d\n",ans);
            for(int i=1;i<=n;i++,puts(""))
                for(int j=1;j<=m;j++){
                    if(i%4==2&&j==3||i%4==0&&j!=3) printf("0");
                    else printf("1");
                }
        }
        else {
            int ans = 0;
            for (int i = 1; i <= n; i++) {
                if (i % 4 == 1) ans += m / 4 * 3 + m % 4;
                else if (i % 4 == 2) ans += m / 4 * 3 + m % 4 - (m % 4 > 1);
                else if (i % 4 == 3) ans += m / 4 * 3 + m % 4 - (m % 4 > 2);
                else ans += m / 4 * 3 + m % 4 - (m%4>0);
            }
            if(n%4==2&&m%4==2) ans++;
            printf("%d\n", ans);
            for (int i = 1; i <= n; i++)
                for (int j = 1; j <= m; j++) {
                    if(i%4==2&&j%4==2&&i==n){
                        if(j%4==3) a[i][j]=0;
                        else a[i][j]=1;
                        continue;
                    }
                    if (i % 4 == 1 && j % 4 == 0 || i % 4 == 2 && j % 4 == 2 || i % 4 == 3 && j % 4 == 3 ||
                        i % 4 == 0 && j % 4 == 1)
                        a[i][j]=0;
                    else a[i][j]=1;
                }
            if(n%4==1&&m%4==1||n%4==2&&m%4==2){
                for(int i=2;i+2<=n;i+=4)
                    for(int j=1;j<=m;j++){
                        int ov=a[i][j];
                        a[i][j]=a[i+1][j],a[i+1][j]=a[i+2][j],a[i+2][j]=ov;
                    }
            }
            for(int i=1;i<=n;i++,puts(""))
                for(int j=1;j<=m;j++)
                    printf("%d",a[i][j]);
        }
    }
    return 0;
}
/*
11101
11011
01110
10111
11101
 */


Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
2 2
3 4
3 8

output:

4
11
11
9
1110
1110
1011
18
11101110
11101110
10111011

result:

ok ok (3 test cases)

Test #2:

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

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
1111
8
11101
11111
10
111011
111111
11
1110111
1111111
12
11101110
11111111
14
111011101
111111111
16
1110111011
1111111111
17
11101110111
11111111111
18
111011101110
111111111111
20
1110111011101
1111111111111
22
11101110111011
11111111111111
23
111011101110111
111111111111...

result:

wrong answer (1, 0) to (1, 3) are the same (test case 3)