QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#498154 | #6644. Red Black Grid | rgnerdplayer | WA | 5ms | 3808kb | C++20 | 2.3kb | 2024-07-30 01:16:33 | 2024-07-30 01:16:34 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
int main() {
cin.tie(nullptr)->sync_with_stdio(false);
int t;
cin >> t;
auto solve = [&]() {
int n, k;
cin >> n >> k;
auto work = [&](auto work, int n, int k) -> vector<string> {
if (k > n * (n - 1)) {
auto res = work(work, n, 2 * n * (n - 1) - k);
if (!res.empty()) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if ((i + j) % 2 == 1) {
res[i][j] ^= 'R' ^ 'B';
}
}
}
}
return res;
}
if (k == 1) {
return {};
}
vector res(n, string(n, 'R'));
if (n == 3) {
if (k == 0) {
} else if (k == 2) {
res[0][0] = 'B';
} else if (k == 3) {
res[0][1] = 'B';
} else if (k == 4) {
res[1][1] = 'B';
} else if (k == 5) {
res[0][1] = res[2][0] = 'B';
} else if (k == 6) {
res[0][1] = res[1][0] = 'B';
}
return res;
}
if (k % 2 == 1) {
res[0][2] = 'B';
k -= 3;
}
for (int i = 1; i < n - 1; i++) {
for (int j = 1; j < n - 1; j++) {
if ((i + j) % 2 == 0 && k >= 4) {
k -= 4;
res[i][j] = 'B';
}
}
}
if (k == 2) {
res[0][0] = 'B';
k -= 2;
}
return res;
};
auto ans = work(work, n, k);
if (ans.empty()) {
cout << "Impossible\n";
} else {
cout << "Possible\n";
for (int i = 0; i < n; i++) {
cout << ans[i] << '\n';
}
}
};
while (t--) {
solve();
}
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3808kb
input:
2 3 6 3 1
output:
Possible RBR BRR RRR Impossible
result:
ok correct! (2 test cases)
Test #2:
score: -100
Wrong Answer
time: 5ms
memory: 3600kb
input:
4424 1 0 2 4 2 3 2 2 2 1 2 0 3 12 3 11 3 10 3 9 3 8 3 7 3 6 3 5 3 4 3 3 3 2 3 1 3 0 4 24 4 23 4 22 4 21 4 20 4 19 4 18 4 17 4 16 4 15 4 14 4 13 4 12 4 11 4 10 4 9 4 8 4 7 4 6 4 5 4 4 4 3 4 2 4 1 4 0 5 40 5 39 5 38 5 37 5 36 5 35 5 34 5 33 5 32 5 31 5 30 5 29 5 28 5 27 5 26 5 25 5 24 5 23 5 22 5 21 5...
output:
Possible R Possible RB BR Impossible Possible BR RR Impossible Possible RR RR Possible RBR BRB RBR Impossible Possible BBR BRB RBR Possible RRR BRB RBR Possible RBR BBB RBR Possible RRR BRB BBR Possible RBR BRR RRR Possible RBR RRR BRR Possible RRR RBR RRR Possible RBR RRR RRR Possible BRR RRR RRR I...
result:
wrong answer Condition failed: "getNum(vec) == k" (test case 32)