QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#476378 | #9114. Black or White 2 | ucup-team1198# | AC ✓ | 344ms | 12052kb | C++20 | 2.7kb | 2024-07-13 19:07:38 | 2024-07-13 19:07:39 |
Judging History
answer
#include <map>
#include <set>
#include <array>
#include <cmath>
#include <deque>
#include <bitset>
#include <random>
#include <string>
#include <vector>
#include <cassert>
#include <complex>
#include <iomanip>
#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>
using namespace std;
void solve(int n, int m, int k) {
int k1 = k;
if (n == 2 && m == 2 && k == 2) {
cout << "10\n01\n";
return;
}
bool col_swap = false;
if (k * 2 > n * m) {
k = n * m - k;
col_swap = true;
}
vector<vector<int>> ans(n, vector<int>(m));
if (n == 4 && m == 4 && k == 8) {
ans[0] = {1, 1, 0, 1};
ans[1] = {1, 0, 0, 0};
ans[2] = {0, 0, 0, 1};
ans[3] = {1, 0, 1, 1};
k = 0;
} else if (n == 4 && m == 5 && k == 9) {
ans[0] = {1, 1, 1, 0, 0};
ans[1] = {1, 1, 0, 0, 0};
ans[2] = {1, 0, 0, 0, 1};
ans[3] = {0, 0, 0, 1, 1};
k = 0;
} else if (n == 6 && m == 7 && k == 20) {
ans[0] = {1, 1, 1, 1, 0, 0, 0};
ans[1] = {1, 1, 1, 0, 0, 0, 0};
ans[2] = {1, 1, 0, 0, 0, 0, 1};
ans[3] = {1, 0, 0, 0, 0, 1, 1};
ans[4] = {0, 0, 0, 0, 1, 1, 1};
ans[5] = {0, 0, 0, 1, 1, 1, 1};
k = 0;
} else {
int sum = 0;
while (k > 0) {
int cur_cnt = 0;
for (int i = 0; i < n; ++i) {
int j = sum - i;
if (j >= 0 && j < m)
++cur_cnt;
}
if (cur_cnt > k)
break;
k -= cur_cnt;
for (int i = 0; i < n; ++i) {
int j = sum - i;
if (j >= 0 && j < m)
ans[i][j] = 1;
}
++sum;
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m && k > 0; ++j) {
bool can = true;
for (int dx = -1; dx <= 1; ++dx) {
for (int dy = -1; dy <= 1; ++dy) {
if (i + dx >= 0 && i + dx < n && j + dy >= 0 && j + dy < m && ans[i + dx][j + dy] == 1)
can = false;
}
}
if (can) {
--k;
ans[i][j] = 1;
}
}
}
}
if (k != 0) {
cerr << "BUG!!!\n";
cerr << n << ' ' << m << ' ' << k1 << '\n';
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < m; ++j)
cout << (ans[i][j] ^ col_swap);
cout << '\n';
}
//cerr << '\n';
}
//#define STRESS
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
#ifdef STRESS
for (int sum = 0; sum < 1000; ++sum) {
for (int n = 2; sum - n >= 2; ++n) {
int m = sum - n;
for (int k = 0; k <= n * m; ++k)
solve(n, m, k);
}
}
#else
int t;
cin >> t;
while (t--) {
int n, m, k;
cin >> n >> m >> k;
solve(n, m, k);
}
#endif
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3548kb
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: 129ms
memory: 3804kb
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 101 000 110 100 010 111 011 111 111 111 00 00 00 10 00 00 10 00 10 11 10 00 01 11 01 01 11 11 11 11 11 000 000 000 100 000 000 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 011 111 111 111 111 111 0000 0000 1000 0000 1010 0000 1...
result:
ok Output is valid. OK.
Test #3:
score: 0
Accepted
time: 108ms
memory: 8968kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #4:
score: 0
Accepted
time: 106ms
memory: 7520kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #5:
score: 0
Accepted
time: 112ms
memory: 7600kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #6:
score: 0
Accepted
time: 330ms
memory: 3752kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #7:
score: 0
Accepted
time: 325ms
memory: 3900kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #8:
score: 0
Accepted
time: 344ms
memory: 3868kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #9:
score: 0
Accepted
time: 152ms
memory: 3764kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #10:
score: 0
Accepted
time: 64ms
memory: 3540kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #11:
score: 0
Accepted
time: 64ms
memory: 3544kb
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 101 000 110 100 010 111 10 00 10 11 10 00 01 11 01 101 000 000 110 100 000 110 100 001 001 011 110 001 011 111 010 111 111 1010 0000 1100 1000 1101 1000 0011 0111 0101 1111 1010 0000 0000 1100 1000 0000 1101 1000 0000 1101 1000 0010 1110 1100 1000 0010 0111 1101 0010 0111 1111 0011 0111 1111 0...
result:
ok Output is valid. OK.
Test #12:
score: 0
Accepted
time: 90ms
memory: 12020kb
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: 100ms
memory: 12052kb
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