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>
#include "vision.h"
using namespace std;
map<int, int> l1, l2, r1, r2;
int lk, lleqk, rk, rleqk, lz, rz;
void construct_network(int H, int W, int K) {
vector<int> lzv, rzv;
for (int tar = 0; tar <= H + W - 2; tar++) {
vector<int> arg;
for (int i = 0; i < H; i++) {
for (int j = 0; j < W; j++) {
if (i + j == tar) arg.push_back(i * W + j);
}
}
l1[tar] = add_or(arg);
int tmp = add_xor(arg);
tmp = add_not(tmp);
l2[tar] = add_and(vector<int> {l1[tar], tmp});
lzv.push_back(l2[tar]);
}
for (int tar = -W + 1; tar <= H - 1; tar++) {
vector<int> arg;
for (int i = 0; i < H; i++) {
for (int j = 0; j < W; j++) {
if (i - j == tar) arg.push_back(i * W + j);
}
}
r1[tar] = add_or(arg);
int tmp = add_xor(arg);
tmp = add_not(tmp);
r2[tar] = add_and(vector<int> {r1[tar], tmp});
rzv.push_back(r2[tar]);
}
lz = add_or(lzv);
rz = add_or(rzv);
vector<int> arg;
for (int lb = 0; lb <= H + W - 2; lb++) {
int rb = lb + K;
if (rb <= H + W - 2) arg.push_back(add_and(vector<int> {l1[lb], l1[rb]}));
}
lk = add_or(arg);
arg.clear();
vector<int> arg2;
for (int lb = 0; lb <= H + W - 3; lb++) {
int rb = lb + K;
for (int i = lb + 1; i <= min(H + W - 2, rb); i++) arg.push_back(l1[i]);
int tmp = add_or(arg);
arg.clear();
arg2.push_back(add_and(vector<int> {l1[lb], tmp}));
}
arg2.push_back(lz);
lleqk = add_or(arg2);
arg2.clear();
for (int lb = -W + 1; lb <= H - 1; lb++) {
int rb = lb + K;
if (rb <= H - 1) arg.push_back(add_and(vector<int> {r1[lb], r1[rb]}));
}
rk = add_or(arg);
arg.clear();
for (int lb = -W + 1; lb <= H - 2; lb++) {
int rb = lb + K;
for (int i = lb + 1; i <= min(H - 1, rb); i++) arg.push_back(r1[i]);
int tmp = add_or(arg);
arg.clear();
arg2.push_back(add_and(vector<int> {r1[lb], tmp}));
}
arg2.push_back(rz);
rleqk = add_or(arg2);
int A = add_and(vector<int> {lk, rleqk});
int B = add_and(vector<int> {rk, lleqk});
add_or(vector<int> {A, B});
}
# | 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... |