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 "vision.h"
#include <bits/stdc++.h>
using namespace std;
// rewrite. use clear front to find
void construct_network(int h, int w, int k) {
int n[2] = {h, w}, t0 = add_xor({0, 0}), t1 = add_not(t0), ov, qw[2][9];
vector<int> hw[2], hwx[2][2], an;
for (int i = 0; i < h; i++) { // each row
vector<int> tmp;
for (int j = 0; j < w; j++) {
tmp.push_back(i * w + j);
}
hw[0].push_back(add_or(tmp));
}
for (int j = 0; j < w; j++) { // each col
vector<int> tmp;
for (int i = 0; i < h; i++) {
tmp.push_back(i * w + j);
}
hw[1].push_back(add_or(tmp));
}
for (int ii = 0; ii < 2; ii++) {
for (int i = 0; i < n[ii]; i++) {
vector<int> tmp0, tmp1;
for (int j = 0; j < i; j++) {
tmp0.push_back(hw[ii][j]);
}
for (int j = i + 1; j < n[ii]; j++) {
tmp1.push_back(hw[ii][j]);
}
int te0 = tmp0.empty() ? t1 : add_not(add_or(tmp0)), te1 = tmp1.empty() ? t1 : add_not(add_or(tmp1));
hwx[ii][0].push_back(add_and({hw[ii][i], te0}));
hwx[ii][1].push_back(add_and({hw[ii][i], te1}));
}
ov = t1;
for (int i = 0; i < 8; i++) {
vector<int> tmp0, tmp1;
for (int j = 0; j < n[ii]; j++) {
if (j & (1 << i)) {
tmp0.push_back(hwx[ii][0][j]);
tmp1.push_back(hwx[ii][1][j]);
}
}
int te0 = tmp0.empty() ? t1 : add_not(add_or(tmp0)), te1 = tmp0.empty() ? t0 : add_or(tmp1), suu = add_xor({te0, te1});
qw[ii][i] = add_xor({suu, ov});
ov = add_or({add_and({suu, ov}), add_and({te0, te1})});
}
}
qw[0][8] = t0, qw[1][8] = t0;
ov = t0;
for (int i = 0; i < 9; i++) {
int bb = (k & (1 << i)) ? t1 : t0, suu = add_xor({qw[0][i], qw[1][i]});
an.push_back(add_xor({bb, suu, ov}));
ov = add_or({add_and({suu, ov}), add_and({qw[0][i], qw[1][i]})});
}
add_not(add_or(an));
return;
}
# | 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... |