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;
int rows, cols, dlen, dist;
bool valid(int r, int c){
return r >= 0 && c >= 0 && r < rows && c < cols;
}
int coord(int r, int c){
return r * cols + c;
}
pair<int, int> solve(bool dir){
vector<int> diag;
if (dir){
for (int i = 0; i < rows; i++){
vector<int> test;
int r = i, c = 0;
for (; valid(r, c); r--, c++) test.push_back(coord(r, c));
diag.push_back(add_or(test));
}
for (int i = 1; i < cols; i++){
vector<int> test;
int r = rows - 1, c = i;
for (; valid(r, c); r--, c++) test.push_back(coord(r, c));
diag.push_back(add_or(test));
}
}
else{
for (int i = 0; i < rows; i++){
vector<int> test;
int r = i, c = cols - 1;
for (; valid(r, c); r--, c--) test.push_back(coord(r, c));
diag.push_back(add_or(test));
}
for (int i = cols - 2; i >= 0; i--){
vector<int> test;
int r = rows - 1, c = i;
for (; valid(r, c); r--, c--) test.push_back(coord(r, c));
diag.push_back(add_or(test));
}
}
int same = add_xor(diag), k, lk;
vector<int> vk, vlk;
for (int i = dlen - 1; i >= dist; i--) vk.push_back(add_and({diag[i - dist], diag[i]}));
k = add_or(vk);
for (int i = dlen - 1; i >= dist; i--){
vector<int> test;
for (int j = 0; j <= dist; j++) test.push_back(diag[i - j]);
int present = add_or(test), one = add_xor(test);
vlk.push_back(add_and({present, add_not(one)}));
}
vlk.push_back(same);
lk = add_or(vlk);
return {k, lk};
}
void construct_network(int H, int W, int K) {
rows = H, cols = W, dlen = H + W - 1, dist = K;
auto lp = solve(1), rp = solve(0);
int a1 = add_and({lp.first, rp.second}), a2 = add_and({lp.second, rp.first});
add_or({a1, a2});
}
# | 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... |