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<iostream>
#include<vector>
#include<utility>
#include<cassert>
using namespace std;
int h,w;
int tru;
vector<pair<int,int> > pdij;
vector<pair<int,int> > mdij;
int polje(int i,int j){
return i*w+j;
}
int mjed(int k){
vector<int> sve;
for(auto _:pdij){
vector<int> ne;
auto [p,gate]=_;
for(auto j:pdij){
if(p-j.first>k || -p+j.first>k){
ne.push_back(j.second);
}
}
if(ne.empty()) continue;
int neka=add_or(ne);
sve.push_back(add_and({neka,gate}));
}
for(auto _:mdij){
vector<int> ne;
auto [m,gate]=_;
for(auto j:mdij){
if(m-j.first>k || -m+j.first>k){
ne.push_back(j.second);
}
}
if(ne.empty()) continue;
int neka=add_or(ne);
sve.push_back(add_and({neka,gate}));
}
if(sve.empty()) return tru;
return add_not(add_or(sve));
}
void construct_network(int _h,int _w,int k){
h=_h; w=_w;
vector<int> tmp;
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
tmp.push_back(polje(i,j));
}
}
tru=add_or(tmp);
for(int p=0;p<=h+w-2;p++){
vector<int> dij;
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
if(i+j==p){
dij.push_back(polje(i,j));
}
}
}
assert(!dij.empty());
pdij.push_back({p,add_or(dij)});
}
for(int m=-w+1;m<=h-1;m++){
vector<int> dij;
for(int i=0;i<h;i++){
for(int j=0;j<w;j++){
if(i-j==m){
dij.push_back(polje(i,j));
}
}
}
mdij.push_back({m,add_or(dij)});
}
add_xor({mjed(k-1),mjed(k)});
}
# | 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... |