This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define REP(i, n) for(int i = 0; i < n; i++)
#include "vision.h"
void construct_network(int H, int W, int K) {
auto construct = [&](int k, auto get_id) {
int s = H + W - 1;
vector<int> a(s), b(s);
REP(i, s) {
int x = min(i, H - 1);
int y = i - x;
vector<int> diag;
for(; x >= 0 && y < W; x--, y++)
diag.emplace_back(get_id(x, y));
a[i] = add_or(diag);
b[i] = add_xor(diag);
}
vector<int> r;
REP(i, s - k) {
vector<int> p, q;
REP(j, k + 1) {
p.emplace_back(a[i + j]);
q.emplace_back(b[i + j]);
}
int x = add_xor({add_or(p), add_xor(q)});
r.emplace_back(x);
}
return add_or(r);
};
auto check = [&](int k) {
int a = construct(k, [&](int x, int y) { return x * W + y; });
int b = construct(k, [&](int x, int y) { return x * W + W - 1 - y; });
return add_and({a, b});
};
add_xor({check(K), check(K - 1)});
}
# | 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... |