QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#130019 | #6644. Red Black Grid | smosp# | WA | 16ms | 3484kb | C++20 | 2.5kb | 2023-07-23 13:55:23 | 2023-07-23 13:55:25 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
vector<int> make(int a, int b, int c, int x) {
// From a 2s, b 3s, c 4s --> Make the sum x.
// Return {-1, -1, -1} if not possible.
for(int A = 0; A <= a; A++) {
for(int B = 0; B <= b; B++) {
int y = x - 2 * A - 3 * B;
if(y < 0 || y % 4 != 0 || (y / 4) > c) continue;
return {A, B, y / 4};
}
}
return {-1, -1, -1};
}
int32_t main() {
cin.tie(0)->sync_with_stdio(0);
int t;
cin >> t;
while(t--) {
int n, k;
cin >> n >> k;
if(n == 1) {
cout << "Possible" << '\n';
cout << "R" << '\n';
continue;
}
int up = 2ll * n * (n - 1);
int two, three, four;
vector<vector<bool>> grid(n, vector<bool>(n));
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if((i + j) % 2 == 0) {
grid[i][j] = true;
}
}
}
if(n % 2 == 0) {
two = 2;
three = 4*((n/2) - 1);
four = n*n/2 - two - three;
} else {
two = 4;
three = 2 * (n - 3);
four = n*n/2 + 1 - two - three;
}
auto config = make(two, three, four, up - k);
if(config[0] == -1) {
cout << "Impossible" << '\n';
continue;
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if((i + j) % 2 == 1) continue;
bool corner = (i == 0 || i == n - 1) && (j == 0 || j == n - 1);
bool side = (i == 0 || i == n - 1 || j == 0 || j == n - 1);
if(corner) {
if(config[0] > 0) {
grid[i][j] = false;
config[0]--;
}
} else if(side) {
if(config[1] > 0) {
grid[i][j] = false;
config[1]--;
}
} else {
if(config[2] > 0) {
grid[i][j] = false;
config[2]--;
}
}
}
}
cout << "Possible" << '\n';
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
cout << (grid[i][j] ? 'B' : 'R');
}
cout << '\n';
}
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3460kb
input:
2 3 6 3 1
output:
Possible RRB RRR BRB Impossible
result:
ok correct! (2 test cases)
Test #2:
score: -100
Wrong Answer
time: 16ms
memory: 3484kb
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 BR RB Impossible Possible RR RB Impossible Possible RR RR Possible BRB RBR BRB Impossible Possible RRB RBR BRB Impossible Possible BRB RRR BRB Impossible Possible RRB RRR BRB Impossible Possible RRR RRR BRB Impossible Possible RRR RRR RRB Impossible Possible RRR RRR RRR Possible ...
result:
wrong answer Condition failed: "A == B" (test case 10)