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;
using LL = long long;
const int MOD = (int)1e9 + 7;
const int NS = (int)204;
vector<int> line, pre, suf, resk, resK;
int kex, Kex;
void construct_network(int H, int W, int K) {
for(int i = 0; i <= H + W - 2; ++i){
vector<int> inp;
for(int x = 0; x <= i; ++x){
int y = i - x;
if(x >= 0 && x < H && y >= 0 && y < W){
inp.push_back(x * W + y);
}
}
line.push_back(add_or(inp));
}
vector<int> inp;
for(int i = 0; i < (int)line.size(); ++i){
inp.push_back(line[i]);
pre.push_back(add_or(inp));
}
inp.clear();
for(int i = (int)line.size() - 1; i >= 0; --i){
inp.push_back(line[i]);
suf.push_back(add_or(inp));
}
reverse(suf.begin(), suf.end());
for(int i = 0; i + K < (int)pre.size(); ++i){
resk.push_back(add_and({pre[i], suf[i + K]}));
if(i + K + 1 < (int)pre.size()){
resK.push_back(add_and({pre[i], suf[i + K + 1]}));
}
}
line.clear(), pre.clear(), suf.clear();
for(int i = 0; i <= H + W - 2; ++i){
vector<int> inp;
for(int x = 0; x <= i; ++x){
int y = i - x;
if(x >= 0 && x < H && y >= 0 && y < W){
y = W - y - 1;
inp.push_back(x * W + y);
}
}
line.push_back(add_or(inp));
}
inp.clear();
for(int i = 0; i < (int)line.size(); ++i){
inp.push_back(line[i]);
pre.push_back(add_or(inp));
}
inp.clear();
for(int i = (int)line.size() - 1; i >= 0; --i){
inp.push_back(line[i]);
suf.push_back(add_or(inp));
}
reverse(suf.begin(), suf.end());
for(int i = 0; i + K < (int)pre.size(); ++i){
resk.push_back(add_and({pre[i], suf[i + K]}));
if(i + K + 1 < (int)pre.size()){
resK.push_back(add_and({pre[i], suf[i + K + 1]}));
}
}
inp.clear();
for(auto&i:resk){
inp.push_back(i);
}
kex = add_or(inp);
inp.clear();
for(auto&i:resK){
inp.push_back(i);
}
if((int)inp.size()){
Kex = add_or(inp);
add_xor({kex, Kex});
}
}
# | 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... |