QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#120185 | #6309. Aqre | hos_lyric | AC ✓ | 7ms | 5756kb | C++14 | 5.5kb | 2023-07-06 14:43:14 | 2023-07-06 14:43:20 |
Judging History
answer
#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using namespace std;
using Int = long long;
template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
vector<int> uf;
int root(int u) {
return (uf[u] < 0) ? u : (uf[u] = root(uf[u]));
}
bool connect(int u, int v) {
u = root(u);
v = root(v);
if (u == v) return false;
if (uf[u] > uf[v]) swap(u, v);
uf[u] += uf[v];
uf[v] = u;
return true;
}
// 1x4 as many as possible
int bound(int M, int N) {
if (M > N) {
swap(M, N);
}
if (M <= 3) {
return M * (N / 4);
} else {
int ret = (M * N) / 4;
if (M % 4 == 2 && N % 4 == 2) {
--ret;
}
return ret;
}
}
vector<string> solve(int M, int N) {
vector<string> ans(M, string(N, '1'));
if (M > N) {
const auto res = solve(N, M);
for (int x = 0; x < M; ++x) for (int y = 0; y < N; ++y) {
ans[x][y] = res[y][x];
}
} else {
if (N <= 3) {
// all 1
} else if (M <= 3) {
const int Y0[4] = {3, 1};
for (int x = 0; x < M; ++x) {
for (int y = Y0[x % 2]; y < N; y += 4) {
ans[x][y] = '0';
}
}
} else {
vector<int> Y0 = {1, 3, 0, 2};
if (false) {
} else if (M % 4 == 1 && N % 4 == 2) {
Y0 = {2, 0, 1, 3};
} else if (M % 4 == 1 && N % 4 == 3) {
Y0 = {3, 1, 2, 0};
} else if (M % 4 == 2 && N % 4 == 2) {
// special
Y0 = {2, 3, 1, 0};
} else if (M % 4 == 3 && N % 4 == 1) {
Y0 = {3, 1, 2, 0};
} else if (M % 4 == 3 && N % 4 == 2) {
Y0 = {3, 1, 2, 0};
}
for (int x = 0; x < M; ++x) {
for (int y = Y0[x % 4]; y < N; y += 4) {
ans[x][y] = '0';
}
}
}
}
return ans;
}
void stress() {
constexpr int lim = 30;
for (int M = 2; M <= lim; ++M) for (int N = 2; N <= lim; ++N) {
cerr << "M = " << M << ", N = " << N << endl;
const int bd = bound(M, N);
const auto slv = solve(M, N);
auto judge = [&]() -> int {
if ((int)slv.size() != M) return __LINE__;
for (int x = 0; x < M; ++x) {
if ((int)slv[x].size() != N) return __LINE__;
}
for (int x = 0; x < M; ++x) for (int y = 0; y < N; ++y) {
if (!(slv[x][y] == '0' || slv[x][y] == '1')) return __LINE__;
}
for (int x = 0; x < M; ++x) {
for (int y = 0; y + 4 <= N; ++y) {
if (slv[x][y] == slv[x][y + 1] && slv[x][y] == slv[x][y + 2] && slv[x][y] == slv[x][y + 3]) return __LINE__;
}
}
for (int y = 0; y < N; ++y) {
for (int x = 0; x + 4 <= M; ++x) {
if (slv[x][y] == slv[x + 1][y] && slv[x][y] == slv[x + 2][y] && slv[x][y] == slv[x + 3][y]) return __LINE__;
}
}
uf.assign(M * N, -1);
for (int x = 0; x < M; ++x) for (int y = 0; y < N; ++y) if (slv[x][y] == '1') {
if (x + 1 < M && slv[x + 1][y] == '1') connect(x * N + y, (x + 1) * N + y);
if (y + 1 < N && slv[x][y + 1] == '1') connect(x * N + y, x * N + (y + 1));
}
int numComps = 0;
for (int x = 0; x < M; ++x) for (int y = 0; y < N; ++y) if (slv[x][y] == '1') {
if (uf[x * N + y] < 0) ++numComps;
}
if (numComps != 1) return __LINE__;
return 0;
};
const int verdict = judge();
if (verdict) {
cerr << "M = " << M << ", N = " << N << endl;
for (const auto &row : slv) {
cerr << row << endl;
}
cerr << " verdict = " << verdict << endl;
assert(false);
}
int cnt0 = 0;
for (int x = 0; x < M; ++x) for (int y = 0; y < N; ++y) if (slv[x][y] == '0') {
++cnt0;
}
if (cnt0 != bd) {
cerr << "M = " << M << ", N = " << N << endl;
for (int x = 0; x < M; ++x) {
cerr << slv[x] << endl;
}
cerr << " bd = " << bd << endl;
cerr << " cnt0 = " << cnt0 << endl;
if (M == 2 || N == 2) continue;
if (M == 3 || N == 3) continue;
assert(false);
}
}
}
int main() {
// stress(); return 0;
for (int numCases; ~scanf("%d", &numCases); ) { for (int caseId = 1; caseId <= numCases; ++caseId) {
int M, N;
scanf("%d%d", &M, &N);
const auto ans = solve(M, N);
int cnt1 = 0;
for (int x = 0; x < M; ++x) for (int y = 0; y < N; ++y) if (ans[x][y] == '1') {
++cnt1;
}
printf("%d\n", cnt1);
for (int x = 0; x < M; ++x) {
puts(ans[x].c_str());
}
}
#ifndef LOCAL
break;
#endif
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3704kb
input:
3 2 2 3 4 3 8
output:
4 11 11 9 1110 1011 1110 18 11101110 10111011 11101110
result:
ok ok (3 test cases)
Test #2:
score: 0
Accepted
time: 0ms
memory: 3652kb
input:
361 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10 2 11 2 12 2 13 2 14 2 15 2 16 2 17 2 18 2 19 2 20 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11 3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 3 20 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 4 10 4 11 4 12 4 13 4 14 4 15 4 16 4 17 4 18 4 19 4 20 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 5 1...
output:
4 11 11 6 111 111 6 1110 1011 8 11101 10111 9 111011 101110 11 1110111 1011101 12 11101110 10111011 14 111011101 101110111 15 1110111011 1011101110 17 11101110111 10111011101 18 111011101110 101110111011 20 1110111011101 1011101110111 21 11101110111011 10111011101110 23 111011101110111 1011101110111...
result:
ok ok (361 test cases)
Test #3:
score: 0
Accepted
time: 4ms
memory: 3616kb
input:
100 91 91 91 92 91 93 91 94 91 95 91 96 91 97 91 98 91 99 91 100 92 91 92 92 92 93 92 94 92 95 92 96 92 97 92 98 92 99 92 100 93 91 93 92 93 93 93 94 93 95 93 96 93 97 93 98 93 99 93 100 94 91 94 92 94 93 94 94 94 95 94 96 94 97 94 98 94 99 94 100 95 91 95 92 95 93 95 94 95 95 95 96 95 97 95 98 95 9...
output:
6211 1011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111 0111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011 1101110111011101110...
result:
ok ok (100 test cases)
Test #4:
score: 0
Accepted
time: 0ms
memory: 3892kb
input:
16 247 247 247 248 247 249 247 250 248 247 248 248 248 249 248 250 249 247 249 248 249 249 249 250 250 247 250 248 250 249 250 250
output:
45757 1011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101 1110111011101110111011101110111011101110111011...
result:
ok ok (16 test cases)
Test #5:
score: 0
Accepted
time: 5ms
memory: 4656kb
input:
1 997 997
output:
745507 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #6:
score: 0
Accepted
time: 2ms
memory: 4660kb
input:
1 997 998
output:
746255 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #7:
score: 0
Accepted
time: 5ms
memory: 4668kb
input:
1 997 999
output:
747003 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #8:
score: 0
Accepted
time: 4ms
memory: 4680kb
input:
1 997 1000
output:
747750 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #9:
score: 0
Accepted
time: 4ms
memory: 5732kb
input:
1 998 997
output:
746255 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #10:
score: 0
Accepted
time: 4ms
memory: 4600kb
input:
1 998 998
output:
747004 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #11:
score: 0
Accepted
time: 0ms
memory: 4660kb
input:
1 998 999
output:
747752 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #12:
score: 0
Accepted
time: 5ms
memory: 4676kb
input:
1 998 1000
output:
748500 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #13:
score: 0
Accepted
time: 3ms
memory: 5756kb
input:
1 999 997
output:
747003 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #14:
score: 0
Accepted
time: 4ms
memory: 5676kb
input:
1 999 998
output:
747752 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #15:
score: 0
Accepted
time: 4ms
memory: 4716kb
input:
1 999 999
output:
748501 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #16:
score: 0
Accepted
time: 1ms
memory: 4680kb
input:
1 999 1000
output:
749250 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #17:
score: 0
Accepted
time: 7ms
memory: 5692kb
input:
1 1000 997
output:
747750 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #18:
score: 0
Accepted
time: 3ms
memory: 5684kb
input:
1 1000 998
output:
748500 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #19:
score: 0
Accepted
time: 6ms
memory: 5700kb
input:
1 1000 999
output:
749250 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #20:
score: 0
Accepted
time: 0ms
memory: 4768kb
input:
1 1000 1000
output:
750000 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #21:
score: 0
Accepted
time: 1ms
memory: 3676kb
input:
1 3 997
output:
2244 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #22:
score: 0
Accepted
time: 1ms
memory: 3652kb
input:
1 3 998
output:
2246 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #23:
score: 0
Accepted
time: 1ms
memory: 3644kb
input:
1 3 999
output:
2249 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #24:
score: 0
Accepted
time: 1ms
memory: 3648kb
input:
1 3 1000
output:
2250 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #25:
score: 0
Accepted
time: 1ms
memory: 3680kb
input:
1 997 3
output:
2244 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101...
result:
ok ok (1 test case)
Test #26:
score: 0
Accepted
time: 1ms
memory: 3684kb
input:
1 998 3
output:
2246 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101...
result:
ok ok (1 test case)
Test #27:
score: 0
Accepted
time: 1ms
memory: 3696kb
input:
1 999 3
output:
2249 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101...
result:
ok ok (1 test case)
Test #28:
score: 0
Accepted
time: 1ms
memory: 3796kb
input:
1 1000 3
output:
2250 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101 111 010 111 101...
result:
ok ok (1 test case)
Test #29:
score: 0
Accepted
time: 0ms
memory: 3712kb
input:
1 2 997
output:
1496 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #30:
score: 0
Accepted
time: 1ms
memory: 3652kb
input:
1 2 998
output:
1497 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #31:
score: 0
Accepted
time: 1ms
memory: 3652kb
input:
1 2 999
output:
1499 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #32:
score: 0
Accepted
time: 1ms
memory: 3760kb
input:
1 2 1000
output:
1500 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #33:
score: 0
Accepted
time: 1ms
memory: 3776kb
input:
1 997 2
output:
1496 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 1...
result:
ok ok (1 test case)
Test #34:
score: 0
Accepted
time: 1ms
memory: 3680kb
input:
1 998 2
output:
1497 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 1...
result:
ok ok (1 test case)
Test #35:
score: 0
Accepted
time: 1ms
memory: 3684kb
input:
1 999 2
output:
1499 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 1...
result:
ok ok (1 test case)
Test #36:
score: 0
Accepted
time: 1ms
memory: 3680kb
input:
1 1000 2
output:
1500 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 11 01 11 10 1...
result:
ok ok (1 test case)