QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#134454 | #6309. Aqre | rniya | AC ✓ | 43ms | 11640kb | C++17 | 6.6kb | 2023-08-03 20:13:48 | 2023-08-03 20:13:52 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ALL(x) (x).begin(), (x).end()
#ifdef LOCAL
#include <debug.hpp>
#else
#define debug(...) void(0)
#endif
template <typename T> istream& operator>>(istream& is, vector<T>& v) {
for (T& x : v) is >> x;
return is;
}
template <typename T> ostream& operator<<(ostream& os, const vector<T>& v) {
for (size_t i = 0; i < v.size(); i++) {
os << v[i] << (i + 1 == v.size() ? "" : " ");
}
return os;
}
template <typename T> T gcd(T x, T y) { return y != 0 ? gcd(y, x % y) : x; }
template <typename T> T lcm(T x, T y) { return x / gcd(x, y) * y; }
int topbit(signed t) { return t == 0 ? -1 : 31 - __builtin_clz(t); }
int topbit(long long t) { return t == 0 ? -1 : 63 - __builtin_clzll(t); }
int botbit(signed a) { return a == 0 ? 32 : __builtin_ctz(a); }
int botbit(long long a) { return a == 0 ? 64 : __builtin_ctzll(a); }
int popcount(signed t) { return __builtin_popcount(t); }
int popcount(long long t) { return __builtin_popcountll(t); }
bool ispow2(int i) { return i && (i & -i) == i; }
long long MSK(int n) { return (1LL << n) - 1; }
template <class T> T ceil(T x, T y) {
assert(y >= 1);
return (x > 0 ? (x + y - 1) / y : x / y);
}
template <class T> T floor(T x, T y) {
assert(y >= 1);
return (x > 0 ? x / y : (x - y + 1) / y);
}
template <class T1, class T2> inline bool chmin(T1& a, T2 b) {
if (a > b) {
a = b;
return true;
}
return false;
}
template <class T1, class T2> inline bool chmax(T1& a, T2 b) {
if (a < b) {
a = b;
return true;
}
return false;
}
template <typename T> void mkuni(vector<T>& v) {
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
}
template <typename T> int lwb(const vector<T>& v, const T& x) { return lower_bound(v.begin(), v.end(), x) - v.begin(); }
const int INF = (1 << 30) - 1;
const long long IINF = (1LL << 60) - 1;
const int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};
const int MOD = 998244353;
// const int MOD = 1000000007;
int one[4] = {1, 1, 1, 0};
int two[2][4] = {{1, 1, 1, 0}, {1, 0, 1, 1}};
int three[3][4] = {{1, 1, 1, 0}, {1, 1, 1, 0}, {1, 0, 1, 1}};
vector<vector<vector<int>>> mass = {{{1, 1, 1, 0}, {1, 0, 1, 1}, {0, 1, 1, 1}, {1, 1, 0, 1}},
{{1, 1, 1, 0}, {1, 0, 1, 1}, {0, 1, 1, 1}, {1, 1, 0, 1}},
{{1, 1, 1, 0}, {1, 1, 0, 1}, {0, 1, 1, 1}, {1, 0, 1, 1}},
{{1, 0, 1, 1}, {1, 1, 1, 0}, {1, 1, 0, 1}, {0, 1, 1, 1}}};
vector<vector<int>> solve(int n, int m) {
vector<vector<int>> res(n, vector<int>(m));
if (n == 2) {
if (m <= 3) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
res[i][j] = 1;
}
}
return res;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
res[i][j] = two[i][j % 4];
}
}
return res;
}
if (n == 3) {
if (m <= 3) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
res[i][j] = 1;
}
}
return res;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
res[i][j] = three[i][j % 4];
}
}
return res;
}
int x = n % 4;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
res[i][j] = mass[x][i % 4][j % 4];
}
}
return res;
}
bool check(int n, int m, vector<vector<int>> res) {
if (res.size() != n) return false;
if (res[0].size() != m) return false;
for (int i = 0; i < n; i++) {
for (int j = 1, cnt = 1; j < m; j++) {
if (res[i][j] == res[i][j - 1])
cnt++;
else
cnt = 1;
if (cnt == 4) return false;
}
}
for (int j = 0; j < m; j++) {
for (int i = 1, cnt = 1; i < n; i++) {
if (res[i][j] == res[i - 1][j])
cnt++;
else
cnt = 1;
if (cnt == 4) return false;
}
}
vector<vector<bool>> seen(n, vector<bool>(m, false));
queue<pair<int, int>> que;
for (int i = 0, f = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (res[i][j] != 1) continue;
if (seen[i][j]) continue;
if (f) return false;
f = 1;
seen[i][j] = true;
que.emplace(i, j);
while (not que.empty()) {
auto [x, y] = que.front();
que.pop();
for (int k = 0; k < 4; k++) {
int nx = x + dx[k], ny = y + dy[k];
if (nx < 0 or n <= nx or ny < 0 or m <= ny) continue;
if (res[nx][ny] != 1) continue;
if (seen[nx][ny]) continue;
seen[nx][ny] = true;
que.emplace(nx, ny);
}
}
}
}
return true;
}
vector<vector<int>> solve1(int n, int m) {
int flag = 0;
if (n > m) {
swap(n, m);
flag ^= 1;
}
if (n > 4 and m % 4 == 0) {
swap(n, m);
flag ^= 1;
}
auto res = solve(n, m);
if (flag) {
vector<vector<int>> nres(m, vector<int>(n));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
nres[j][i] = res[i][j];
}
}
swap(res, nres);
swap(n, m);
}
if (not check(n, m, res)) {
debug(n, m);
for (int i = 0; i < n; i++) cout << res[i] << '\n';
}
return res;
}
void test() {
for (int n = 2; n < 20; n++) {
for (int m = 2; m < 20; m++) {
solve1(n, m);
}
}
}
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
// test();
// return 0;
int T;
cin >> T;
for (; T--;) {
int n, m;
cin >> n >> m;
auto res = solve1(n, m);
int sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
sum += res[i][j];
}
}
cout << sum << '\n';
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) cout << res[i][j];
cout << '\n';
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3596kb
input:
3 2 2 3 4 3 8
output:
4 11 11 9 1110 1110 1011 18 11101110 11101110 10111011
result:
ok ok (3 test cases)
Test #2:
score: 0
Accepted
time: 3ms
memory: 3504kb
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: 35ms
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 1101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110 0111011101110111011...
result:
ok ok (100 test cases)
Test #4:
score: 0
Accepted
time: 32ms
memory: 4088kb
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: 36ms
memory: 11508kb
input:
1 997 997
output:
745507 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #6:
score: 0
Accepted
time: 35ms
memory: 11516kb
input:
1 997 998
output:
746255 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #7:
score: 0
Accepted
time: 35ms
memory: 11560kb
input:
1 997 999
output:
747003 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #8:
score: 0
Accepted
time: 40ms
memory: 11528kb
input:
1 997 1000
output:
747750 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #9:
score: 0
Accepted
time: 43ms
memory: 11516kb
input:
1 998 997
output:
746255 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #10:
score: 0
Accepted
time: 40ms
memory: 11620kb
input:
1 998 998
output:
747004 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #11:
score: 0
Accepted
time: 33ms
memory: 11536kb
input:
1 998 999
output:
747752 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #12:
score: 0
Accepted
time: 37ms
memory: 11556kb
input:
1 998 1000
output:
748500 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #13:
score: 0
Accepted
time: 38ms
memory: 11516kb
input:
1 999 997
output:
747003 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #14:
score: 0
Accepted
time: 36ms
memory: 11640kb
input:
1 999 998
output:
747752 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #15:
score: 0
Accepted
time: 38ms
memory: 11612kb
input:
1 999 999
output:
748501 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #16:
score: 0
Accepted
time: 35ms
memory: 11612kb
input:
1 999 1000
output:
749250 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #17:
score: 0
Accepted
time: 35ms
memory: 11560kb
input:
1 1000 997
output:
747750 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #18:
score: 0
Accepted
time: 37ms
memory: 11524kb
input:
1 1000 998
output:
748500 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #19:
score: 0
Accepted
time: 40ms
memory: 11612kb
input:
1 1000 999
output:
749250 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #20:
score: 0
Accepted
time: 42ms
memory: 11632kb
input:
1 1000 1000
output:
750000 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #21:
score: 0
Accepted
time: 0ms
memory: 3536kb
input:
1 3 997
output:
2244 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #22:
score: 0
Accepted
time: 1ms
memory: 3580kb
input:
1 3 998
output:
2246 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #23:
score: 0
Accepted
time: 2ms
memory: 3624kb
input:
1 3 999
output:
2249 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #24:
score: 0
Accepted
time: 1ms
memory: 3564kb
input:
1 3 1000
output:
2250 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #25:
score: 0
Accepted
time: 1ms
memory: 3724kb
input:
1 997 3
output:
2244 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110...
result:
ok ok (1 test case)
Test #26:
score: 0
Accepted
time: 0ms
memory: 3724kb
input:
1 998 3
output:
2246 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110...
result:
ok ok (1 test case)
Test #27:
score: 0
Accepted
time: 1ms
memory: 3652kb
input:
1 999 3
output:
2249 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110...
result:
ok ok (1 test case)
Test #28:
score: 0
Accepted
time: 0ms
memory: 3668kb
input:
1 1000 3
output:
2250 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110 111 001 111 110...
result:
ok ok (1 test case)
Test #29:
score: 0
Accepted
time: 1ms
memory: 3484kb
input:
1 2 997
output:
1496 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #30:
score: 0
Accepted
time: 1ms
memory: 3560kb
input:
1 2 998
output:
1497 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #31:
score: 0
Accepted
time: 1ms
memory: 3560kb
input:
1 2 999
output:
1499 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #32:
score: 0
Accepted
time: 1ms
memory: 3616kb
input:
1 2 1000
output:
1500 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #33:
score: 0
Accepted
time: 0ms
memory: 3656kb
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: 3688kb
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: 3736kb
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: 3732kb
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)