#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
#define vec vector
#define pii pair<int, int>
#define fir first
#define sec second
int n, m, k;
int id(int i, int j) { return i * m + j; }
void construct_network(int _n, int _m, int _k) {
n = _n, m = _m, k = _k;
int nm = n * m - 1;
map<int, int> rw, cl;
map<pii, int> rw_pr, cl_pr;
map<int, int> rw_df, cl_df;
for (int i = 0; i < n; i++) {
vec<int> x;
for (int j = 0; j < m; j++) x.push_back(id(i, j));
add_or(x), rw[i] = ++nm;
}
for (int j = 0; j < m; j++) {
vec<int> x;
for (int i = 0; i < n; i++) x.push_back(id(i, j));
add_or(x), cl[j] = ++nm;
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
add_and({rw[i], rw[j]}), rw_pr[{i, j}] = ++nm;
}
}
for (int i = 0; i < m; i++) {
for (int j = i + 1; j < m; j++) {
add_and({cl[i], cl[j]}), cl_pr[{i, j}] = ++nm;
}
}
for (int d = 0; d < n; d++) {
if (d == 0) {
vec<int> x;
for (int i = 0; i < n; i++) x.push_back(rw[i]);
add_xor(x), rw_df[d] = ++nm;
} else {
vec<int> x;
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (abs(i - j) == d) x.push_back(rw_pr[{i, j}]);
}
}
add_or(x), rw_df[d] = ++nm;
}
}
for (int d = 0; d < m; d++) {
if (d == 0) {
vec<int> x;
for (int i = 0; i < m; i++) x.push_back(cl[i]);
add_xor(x), cl_df[d] = ++nm;
} else {
vec<int> x;
for (int i = 0; i < m; i++) {
for (int j = i + 1; j < m; j++) {
if (abs(i - j) == d) x.push_back(cl_pr[{i, j}]);
}
}
add_or(x), cl_df[d] = ++nm;
}
}
vec<int> x;
for (int rw_d = 0; rw_d < n; rw_d++) {
for (int cl_d = 0; cl_d < m; cl_d++) {
if (rw_d + cl_d != k) continue;
add_and({rw_df[rw_d], cl_df[cl_d]}), x.push_back(++nm);
}
}
add_or(x);
}
# | 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... |