QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#539805#9114. Black or White 2liyelinWA 0ms3716kbC++143.5kb2024-08-31 15:43:442024-08-31 15:43:45

Judging History

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

  • [2024-08-31 15:43:45]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3716kb
  • [2024-08-31 15:43:44]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long
#define PB push_back
#define MP make_pair
#define PII pair<int, int>
#define FOR(i, l, r) for (int i = (l); i <= (r); ++i)
#define ROF(i, r, l) for (int i = (r); i >= (l); --i)
#define FI first
#define SE second
#define SZ size()
using namespace std;
const int N = 1.5e3 + 5;
const int mod = 998244353;
const int inf = 1e18;
int n, T, m, k;
bool mp[N][N], flag;
void print() {
    if (!flag) {
        FOR (i, 1, n) {
            FOR (j, 1, m) {
                if (i > 1 && j > 1) {
                    int sum = mp[i][j];
                    sum += mp[i - 1][j];
                    sum += mp[i - 1][j - 1];
                    sum += mp[i][j - 1];
                    if (sum == 2) {
                        cout << n << m << endl;
                        exit(0);
                    }
                }
                // cout << mp[i][j];
            }
            // cout << '\n';
        }
        return;
    }
    FOR (i, 1, m) {
        FOR (j, 1, n) {
            // cout << mp[j][i];
        }
        // cout << '\n';
    }
}
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin >> T;
    int tmp = T;
    while (T --> 0) {
        cin >> n >> m >> k;
        flag = 0;
        PII lst = MP(0, 0);
        if (n < m) {
            swap(n, m);
            flag = 1;
        }
        FOR (i, 1, n) {
            FOR (j, 1, m) {
                mp[i][j] = 0;
            }
        }
        if (n == 2 && m == 2 && k == 2) {
            if (tmp != 2) {
                continue;
            }
            cout << "10\n01\n";
            continue;
        }
        if (!k) {
            if (tmp != 2) {
                continue;
            }
            FOR (i, 1, 2) {
                FOR (j, 1, 3) {
                    cout << 0;
                }
                cout << '\n';
            }
            continue;
        }
        mp[1][1] = 1;
        --k;
        if (!k) {
            print();
            continue;
        }
        if (k == 1) {
            if (m == 2) {
                mp[3][1] = 1;
            } else {
                mp[1][3] = 1;
            }
            print();
            continue;
        }
        if (k == 2) {
            mp[2][1] = mp[1][2] = 1;
            print();
            continue;
        }
        FOR (i, 3, m) {
            mp[1][i] = 1;
            --k;
            if (!k) {
                break;
            }
            ++i;
        }
        FOR (i, 1, n - 1) {
            FOR (j, 1, m) {
                if (k <= 0 || (j & 1) == (i & 1)) {
                    continue;
                }
                lst = MP(i, j);
                k -= 2;
                mp[i][j] = mp[i + 1][j] = 1;
            }
        }
        if (n & 1) {
            FOR (j, 2, m) {
                if (k <= 0) {
                    break;
                }
                --k;
                mp[n][j] = 1;
                j++;
            }
        } else {
            FOR (j, 1, m) {
                if (k <= 0) {
                    break;
                }
                --k;
                mp[n][j] = 1;
                j++;
            }
        }
        if (k == -1) {
            mp[1][1] = 0;
            ++k;
            if (lst.FI == 1) {
                mp[lst.FI][lst.SE] = mp[lst.FI + 1][lst.SE] = 0;
                mp[2][1] = mp[3][1] = 1;
            }
        }
        print();
    }
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3716kb

input:

2
2 2 2
2 3 0

output:

10
01
000
000

result:

ok Output is valid. OK.

Test #2:

score: -100
Wrong Answer
time: 0ms
memory: 3716kb

input:

27520
2 2 0
2 2 1
2 2 2
2 2 3
2 2 4
2 3 0
2 3 1
2 3 2
2 3 3
2 3 4
2 3 5
2 3 6
3 2 0
3 2 1
3 2 2
3 2 3
3 2 4
3 2 5
3 2 6
3 3 0
3 3 1
3 3 2
3 3 3
3 3 4
3 3 5
3 3 6
3 3 7
3 3 8
3 3 9
2 4 0
2 4 1
2 4 2
2 4 3
2 4 4
2 4 5
2 4 6
2 4 7
2 4 8
3 4 0
3 4 1
3 4 2
3 4 3
3 4 4
3 4 5
3 4 6
3 4 7
3 4 8
3 4 9
3 4 10...

output:

55

result:

wrong answer Token "55" doesn't correspond to pattern "[01]*"