QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#477080 | #9114. Black or White 2 | Forever_Young# | AC ✓ | 255ms | 12720kb | C++14 | 3.0kb | 2024-07-13 23:08:11 | 2024-07-13 23:08:11 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
#define all(x) ((x).begin()), ((x).end())
#define pb push_back
const int N = 1511;
int a[N][N];
int n, m, k;
void print() {
int sum = 0, x = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d", a[i][j]);
sum += a[i][j];
if (i && j) {
x += (a[i][j] + a[i - 1][j] + a[i][j - 1] + a[i - 1][j - 1] == 2);
}
}
printf("\n");
}
assert(sum == k);
assert(x == 0 || (n == 2 && m == 2 && k == 2));
}
void solve(int nn, int mm, int kk) {
if (nn != -1) {
n = nn;
m = mm;
k = kk;
} else {
scanf("%d%d%d", &n, &m, &k);
}
if (k == 2) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] = (i == 0 && j == 0 || i == n - 1 && j == m - 1);
}
}
print();
return;
}
if (k == n * m - 2) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] = !(i == 0 && j == 0 || i == n - 1 && j == m - 1);
}
}
print();
return;
}
bool rev = false;
if (k > n * m / 2) {
k = n * m - k;
rev = true;
}
bool mir = false;
if (n > m) {
mir = true;
swap(n, m);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] = 0;
}
}
int cnt = 0;
int len = 0;
while(cnt < k) {
len++;
for (int i = 1; i <= min(len, n); i++) {
a[i - 1][len - i] = 1;
}
cnt += min(len, n);
}
// printf("cnt = %d\n", cnt);
if (len >= n + 1) {
for (int j = len - n - 1; j >= 0 && cnt > k; j -= 2) {
cnt--;
a[n - 1][j] = 0;
}
}
for (int i = n - 1; i >= 1 && cnt > k + 1; i--) {
for (int j = m - 1; j >= 0 && cnt > k + 1; j--) {
if (a[i][j] == 1) {
a[i][j] = 0;
a[i - 1][j] = 0;
cnt -= 2;
}
}
}
if (cnt > k) {
a[0][0] = 0;
}
if (mir) {
for (int i = 0; i < n; i++) {
for (int j = i; j < m; j++) {
swap(a[i][j], a[j][i]);
}
}
swap(n, m);
}
if (rev) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a[i][j] ^= 1;
}
}
k = n * m - k;
}
print();
}
int main() {
int t;
scanf("%d", &t);
for(int qq = 1; qq <= t; qq++) {
// for (int i = 2; i <= 10; i++) {
// for(int j = 2; j <= 10; j++) {
// for(int k = 0; k <= i * j; k++) {
// printf("%d %d %d\n", i, j, k);
// solve(i, j, k);
// }
// }
// }
solve(-1, -1, -1);
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3876kb
input:
2 2 2 2 2 3 0
output:
10 01 000 000
result:
ok Output is valid. OK.
Test #2:
score: 0
Accepted
time: 237ms
memory: 3924kb
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:
00 00 10 00 10 01 01 11 11 11 000 000 100 000 100 001 110 100 011 110 011 111 111 111 00 00 00 10 00 00 10 00 01 11 10 00 01 11 10 01 11 11 11 11 11 000 000 000 100 000 000 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 011 111 111 111 111 111 0000 0000 1000 0000 1000 0001 1...
result:
ok Output is valid. OK.
Test #3:
score: 0
Accepted
time: 238ms
memory: 12428kb
input:
162 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4 9 ...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #4:
score: 0
Accepted
time: 232ms
memory: 12328kb
input:
163 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4 9 ...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #5:
score: 0
Accepted
time: 226ms
memory: 12504kb
input:
165 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4 9 ...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #6:
score: 0
Accepted
time: 242ms
memory: 9900kb
input:
1020 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4 9...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #7:
score: 0
Accepted
time: 213ms
memory: 9940kb
input:
1012 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4 9...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #8:
score: 0
Accepted
time: 241ms
memory: 9924kb
input:
1033 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4 9...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #9:
score: 0
Accepted
time: 255ms
memory: 3912kb
input:
100000 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #10:
score: 0
Accepted
time: 111ms
memory: 3840kb
input:
100000 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #11:
score: 0
Accepted
time: 109ms
memory: 3828kb
input:
100000 2 2 2 2 3 2 2 3 3 2 3 4 3 2 2 3 2 3 3 2 4 3 3 2 3 3 3 3 3 4 3 3 5 3 3 6 3 3 7 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 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 4 2 2 4 2 3 4 2 4 4 2 5 4 2 6 4 3 2 4 3 3 4 3 4 4 3 5 4 3 6 4 3 7 4 3 8 4 3 9 4 3 10 4 4 2 4 4 3 4 4 4 4 4 5 4 4 6 4 4 7 4 4 8 4 4...
output:
10 01 100 001 110 100 011 110 10 00 01 11 10 00 01 11 10 100 000 001 110 100 000 111 010 000 000 101 111 001 011 111 011 111 110 1000 0001 1100 1000 1110 0100 0011 0111 0111 1110 1000 0000 0001 1100 1000 0000 1110 0100 0000 0110 1100 1000 1110 1100 1000 1001 0011 0111 0001 1011 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #12:
score: 0
Accepted
time: 225ms
memory: 12644kb
input:
3 1500 1500 2250000 1322 1322 1747684 1158 2 2316
output:
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
ok Output is valid. OK.
Test #13:
score: 0
Accepted
time: 222ms
memory: 12720kb
input:
3 1500 1500 1125000 1322 1322 873842 1158 2 1158
output:
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
result:
ok Output is valid. OK.
Extra Test:
score: 0
Extra Test Passed