QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#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;
}
Details
Tip: Click on the bar to expand more detailed information
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)