#include "mars.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ari2 = array<int, 2>;
using ari3 = array<int, 3>;
using arl2 = array<ll, 2>;
using arl3 = array<ll, 3>;
template <class T> using vt = vector<T>;
#define all(x) begin(x), end(x)
#define size(x) (int((x).size()))
#define REP(a,b,c,d) for(int a=(b);(d)>0?a<=(c):a>=(c);a+=(d))
#define FOR(a,b,c) REP(a,b,c,1)
#define ROF(a,b,c) REP(a,b,c,-1)
struct DSU {
int N;
vt<int> uf;
DSU(const int n) : N(n), uf(n*n, -1) {}
int hsh(const int i, const int j) {
return i * N + j;
}
int find(const int i, const int j) {
return uf[hsh(i, j)] < 0 ? hsh(i, j) : uf[hsh(i, j)] = find(uf[hsh(i, j)] / N, uf[hsh(i, j)] % N);
}
bool unite(const int a, const int b, const int c, const int d) {
int i = find(a, b), j = find(c, d);
if (i == j)
return false;
if (uf[i] > uf[j])
swap(i, j);
uf[i] += uf[j];
uf[j] = i;
return true;
}
};
string process(vt<vt<string>> a, int i, int j, int k, int n) {
string ret(100, '0');
n = 2 * n + 1;
FOR(x, 0, 2)
FOR(y, 0, 2) {
FOR(z, 0, 99) {
const int c = (x + z / n) * n + y + z % n;
if (c < 100)
ret[c] = a[x][y][z];
}
}
if (k == n/2-1) {
DSU uf(n);
int cnt = 0;
FOR(x, 0, n-1)
FOR(y, 0, n-1)
cnt += ret[x*n+y] == '1';
FOR(x, 0, n-1)
FOR(y, 0, n-1)
if (ret[x*n+y] == '1') {
if (x && ret[(x-1)*n+y] == '1')
cnt -= uf.unite(x-1, y, x, y);
if (y && ret[x*n+(y-1)] == '1')
cnt -= uf.unite(x, y-1, x, y);
}
ret = string(100, '0');
FOR(x, 0, 17)
ret[x] = (cnt >> x & 1) + '0';
}
return ret;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |