QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#96948 | #6309. Aqre | joesmitty | AC ✓ | 166ms | 18900kb | C++20 | 6.1kb | 2023-04-16 02:30:33 | 2023-04-16 02:30:34 |
Judging History
answer
#include <iostream>
#include <tuple>
#include <cmath>
#include <string>
#include <cstring>
#include <vector>
#include <deque>
#include <queue>
#include <stack>
#include <random>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <algorithm>
#include <vector>
#include <fstream>
#include <iomanip>
#include <ctime>
#include <cctype>
#include <climits>
#include <chrono>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector< vector <int> > vvi;
typedef pair<int, int> pii;
typedef pair < pair < int, int >, int > piii;
typedef pair < pair <int, int > , pair <int, int> > piiii;
typedef pair<ll, ll> pll;
typedef vector<bool> vb;
typedef vector<char> vc;
typedef vector<string> vs;
#define FOR(i,a,b) for(int i = a; i < b; i ++)
#define RFOR(i,a,b) for(int i = a-1; i >= b; i --)
#define all(a) a.begin(), a.end()
//#define endl '\n';
#define sz(x) (int)(x).size()
#define mp make_pair
#define pb push_back
#define ff first
#define ss second
template <typename T>
void pr(vector<T> &v) {
FOR(i, 0, sz(v)) cout << v[i] << " ";
cout << endl;
}
template <typename T>
void pr(vector<vector<T> > &v) {
FOR(i, 0, sz(v)) { pr(v[i]); }
}
template <typename T>
void re(T &x) {
cin >> x;
}
template <typename T>
void re(vector<T> &a) {
FOR(i, 0, sz(a)) re(a[i]);
}
template <class Arg, class... Args>
void re(Arg &first, Args &... rest) {
re(first);
re(rest...);
}
template <typename T>
void pr(T x) {
cout << x << endl;
}
template <class Arg, class... Args>
void pr(const Arg &first, const Args &... rest) {
cout << first << " ";
pr(rest...);
cout << endl;
}
void ps() { cout << endl; }
template<class T, class... Ts>
void ps(const T& t, const Ts&... ts) {
cout << t; if (sizeof...(ts)) cout << " "; ps(ts...);
}
const ll MOD = 998244353;
#define inf 1e18;
#define INF INT_MAX
long double PI = 4*atan(1);
long double eps = 1e-16;
class UnionFind {
private:
vi p, siz;
int numSets;
public:
UnionFind(int N) {
p.assign(N, 0); FOR(i,0,N) p[i] = i;
siz.assign(N,1);
numSets = N;
}
int findSet(int i) {
return (p[i] == i) ? i : (p[i] = findSet(p[i]));
}
bool isSameSet(int i, int j) {
return findSet(i) == findSet(j);
}
int numDisjointSets() {
return numSets;
}
int sizeOfSet(int i) {
return siz[findSet(i)];
}
void unionset(int i, int j) {
if(isSameSet(i,j)) return;
int x = findSet(i), y = findSet(j);
if(siz[x] <= siz[y]) {
p[x] = p[y];
siz[y] += siz[x];
}
else {
p[y] = p[x];
siz[x] += siz[y];
}
numSets--;
return;
}
};
bool check(vvi &g, int n, int m) {
int num0 = 0;
FOR(i,0,n) FOR(j,0,m) num0 += (g[i][j] == 0);
UnionFind uf(n * m);
int dr[4] = {1,-1,0,0};
int dc[4] = {0,0,1,-1};
FOR(i,0,n) {
FOR(j,0,m) {
if(g[i][j] == 1) {
FOR(k,0,4) {
int ni = i + dr[k];
int nj = j + dc[k];
if(ni >= 0 && ni < n && nj >= 0 && nj < m && g[ni][nj] == 1) {
int c = m * i + j;
int nc = m * ni + nj;
uf.unionset(c, nc);
}
}
}
}
}
// pr(g);
// cout << uf.numDisjointSets() << " " << num0 + 1 << endl;
return (uf.numDisjointSets() == num0 + 1);
}
void solve() {
int n,m; cin >> n >> m;
vvi g(n, vi(m, 1));
int bestcnt = 0;
if(max(n,m) < 4) {
bestcnt = n * m;
FOR(i,0,n) FOR(j,0,m) g[i][j] = 1;
}
else if(min(n,m) == 2) {
bestcnt = n * m;
if(n < m) {
FOR(j,0,m) if(j % 4 == 3) {g[0][j] = 0; bestcnt--;}
FOR(j,0,m) if(j % 4 == 1) {g[1][j] = 0; bestcnt--;}
} else {
FOR(i,0,n) if(i % 4 == 3) {g[i][0] = 0; bestcnt--;}
FOR(i,0,n) if(i % 4 == 1) {g[i][1] = 0; bestcnt--;}
}
} else if(min(n,m) == 3) {
bestcnt = n * m;
if(n < m) {
FOR(j,0,m) if(j % 4 == 3) {g[0][j] = 0; bestcnt--;}
FOR(j,0,m) if(j % 4 == 1) {g[1][j] = 0; bestcnt--;}
FOR(j,0,m) if(j % 4 == 3) {g[2][j] = 0; bestcnt--;}
} else {
FOR(i,0,n) if(i % 4 == 3) {g[i][0] = 0; bestcnt--;}
FOR(i,0,n) if(i % 4 == 1) {g[i][1] = 0; bestcnt--;}
FOR(i,0,n) if(i % 4 == 3) {g[i][2] = 0; bestcnt--;}
}
} else {
vi perm = {0,1,2,3};
do {
vvi gt(n, vi(m, 1));
int ans = n * m;
FOR(i,0,n) {
FOR(j,0,m) {
if((j % 4) == perm[i % 4]) {
gt[i][j] = 0; ans--;
}
}
}
if(ans > bestcnt) {
if(check(gt, n, m)) {
bestcnt = ans;
g = gt;
}
}
} while (next_permutation(all(perm)));
}
cout << bestcnt << endl;
FOR(i,0,n) {
FOR(j,0,m) cout << g[i][j];
cout << endl;
}
}
int main() {
auto start = chrono::high_resolution_clock::now();
// ios_base::sync_with_stdio(0);cin.tie(0);
//ofstream cout("output.txt");
//ifstream cin("input.txt");
#ifdef DEBUG
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
int t; cin >> t;
FOR(tcase,0,t) {
solve();
}
// auto stop = chrono::high_resolution_clock::now();
// auto duration = chrono::duration_cast<chrono::microseconds>(stop - start);
// cout << duration.count() << endl;
//cin.close();
//cout.close();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3352kb
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: 37ms
memory: 3512kb
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: 135ms
memory: 3556kb
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 0111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011 1011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111 1101110111011101110...
result:
ok ok (100 test cases)
Test #4:
score: 0
Accepted
time: 122ms
memory: 4052kb
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 0111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011 1011101110111011101110111011101110111011101110...
result:
ok ok (16 test cases)
Test #5:
score: 0
Accepted
time: 140ms
memory: 18660kb
input:
1 997 997
output:
745507 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #6:
score: 0
Accepted
time: 137ms
memory: 18796kb
input:
1 997 998
output:
746255 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #7:
score: 0
Accepted
time: 125ms
memory: 18672kb
input:
1 997 999
output:
747003 11101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101...
result:
ok ok (1 test case)
Test #8:
score: 0
Accepted
time: 107ms
memory: 18800kb
input:
1 997 1000
output:
747750 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #9:
score: 0
Accepted
time: 143ms
memory: 18688kb
input:
1 998 997
output:
746255 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #10:
score: 0
Accepted
time: 142ms
memory: 18796kb
input:
1 998 998
output:
747004 11011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011...
result:
ok ok (1 test case)
Test #11:
score: 0
Accepted
time: 121ms
memory: 18900kb
input:
1 998 999
output:
747752 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #12:
score: 0
Accepted
time: 111ms
memory: 18792kb
input:
1 998 1000
output:
748500 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #13:
score: 0
Accepted
time: 126ms
memory: 18868kb
input:
1 999 997
output:
747003 10111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #14:
score: 0
Accepted
time: 166ms
memory: 18872kb
input:
1 999 998
output:
747752 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #15:
score: 0
Accepted
time: 113ms
memory: 18832kb
input:
1 999 999
output:
748501 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #16:
score: 0
Accepted
time: 107ms
memory: 18644kb
input:
1 999 1000
output:
749250 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #17:
score: 0
Accepted
time: 117ms
memory: 18792kb
input:
1 1000 997
output:
747750 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #18:
score: 0
Accepted
time: 128ms
memory: 18776kb
input:
1 1000 998
output:
748500 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #19:
score: 0
Accepted
time: 96ms
memory: 18804kb
input:
1 1000 999
output:
749250 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #20:
score: 0
Accepted
time: 128ms
memory: 18852kb
input:
1 1000 1000
output:
750000 01110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110...
result:
ok ok (1 test case)
Test #21:
score: 0
Accepted
time: 2ms
memory: 3396kb
input:
1 3 997
output:
2244 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #22:
score: 0
Accepted
time: 2ms
memory: 3344kb
input:
1 3 998
output:
2246 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #23:
score: 0
Accepted
time: 0ms
memory: 3348kb
input:
1 3 999
output:
2249 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #24:
score: 0
Accepted
time: 2ms
memory: 3400kb
input:
1 3 1000
output:
2250 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #25:
score: 0
Accepted
time: 3ms
memory: 3476kb
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: 12ms
memory: 3412kb
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: 4ms
memory: 3464kb
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: 2ms
memory: 3408kb
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: 2ms
memory: 3340kb
input:
1 2 997
output:
1496 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #30:
score: 0
Accepted
time: 2ms
memory: 3400kb
input:
1 2 998
output:
1497 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #31:
score: 0
Accepted
time: 1ms
memory: 3340kb
input:
1 2 999
output:
1499 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #32:
score: 0
Accepted
time: 2ms
memory: 3372kb
input:
1 2 1000
output:
1500 1110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111011101110111...
result:
ok ok (1 test case)
Test #33:
score: 0
Accepted
time: 5ms
memory: 3420kb
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: 4ms
memory: 3320kb
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: 3380kb
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: 6ms
memory: 3376kb
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)