#include "vision.h"
using namespace std;
void construct_network(int h, int w, int k) {
if (min(h, w) == 1) {
vector<int> a;
for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
for (int i2 = 0; i2 < h; i2++) {
for (int j2 = 0; j2 < w; j2++) {
if (abs(i-i2)+abs(j-j2) == k) {
int val = add_and({i*w+j, i2*w+j2});
a.push_back(val);
}
}
}
}
}
int val = add_or(a);
return;
}
vector<int> r, c;
for (int i = 0; i < h; i++) {
vector<int> v;
for (int j = 0; j < w; j++) {
v.push_back(i*w+j);
}
int val = add_or(v);
r.push_back(val);
}
for (int j = 0; j < w; j++) {
vector<int> v;
for (int i = 0; i < h; i++) {
v.push_back(i*w+j);
}
int val = add_or(v);
c.push_back(val);
}
vector<int> ra, ca;
for (int i = 0; i + 1 < r.size(); i++) {
int val = add_and({r[i], r[i+1]});
ra.push_back(val);
}
for (int i = 0; i + 1 < c.size(); i++) {
int val = add_and({c[i], c[i+1]});
ca.push_back(val);
}
int ro = add_or(ra), co = add_or(ca);
int rx = add_xor(r), cx = add_xor(c);
int val1 = add_and({ro, cx});
int val2 = add_and({co, rx});
int val = add_or({val1, val2});
}
# | 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... |