#include <bits/stdc++.h>
#include "vision.h"
// #include "grader.cpp"
using namespace std;
int h, w, k, cur, diag_inds[2][400], diag_or[2][400], diag_isk[2], exist_ink[2][400], parity_ink[2][400], diag_lk[2][400], diag_isz[2], diag_islk[2];
vector<int> diags[2][400];
int get_id(int x, int y){
return x * w + y;
}
int dist(int r1, int c1, int r2, int c2){
return abs(r1 - r2) + abs(c1 - c2);
}
void construct_network(int H, int W, int K) {
h = H, w = W, k = K, cur = h * w;
for (int r = 0; r < h; r ++){
for (int c = 0; c < w; c ++){
diags[0][dist(0, 0, r, c)].push_back(get_id(r, c));
diags[1][dist(0, w - 1, r, c)].push_back(get_id(r, c));
}
}
for (int id : {0, 1}){
for (int i = 0; i <= h + w - 2; i ++)
diag_inds[id][i] = add_or(diags[id][i]);
vector<int> vec;
for (int i = 0; i + k <= h + w - 2; i ++){
diag_or[id][i] = add_and({diag_inds[id][i], diag_inds[id][i + k]});
vec.push_back(diag_or[id][i]);
}
diag_isk[id] = add_or(vec);
vec.clear();
for (int i = 0; i <= h + w - 2; i ++)
vec.push_back(diag_inds[id][i]);
diag_isz[id] = add_xor(vec);
vector<int> overall_lk;
vec.clear();
for (int i = 0; i + k <= h + w - 2; i ++){
vec.clear();
for (int j = i; j <= i + k; j ++)
vec.push_back(diag_inds[id][j]);
exist_ink[id][i] = add_or(vec);
parity_ink[id][i] = add_not(add_xor(vec));
diag_lk[id][i] = add_and({exist_ink[id][i], parity_ink[id][i]});
overall_lk.push_back(diag_lk[id][i]);
}
overall_lk.push_back(diag_isz[id]);
diag_islk[id] = add_or(overall_lk);
}
int one_eq = add_or({diag_isk[0], diag_isk[1]});
int both_lk = add_and({diag_islk[0], diag_islk[1]});
int final_res = add_and({one_eq, both_lk});
}
# | 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... |