#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
int h,w,k;
int fpt(int x,int y){
return y*w+x;
}
void construct_network(int H, int W, int K) {
h=H;
w=W;
k=K;
int cor[w],cnx[w],ror[h],rnx[h];
for(int i=0;i<w;i++){
vector<int>ns;
for(int j=0;j<h;j++){
ns.push_back(fpt(i,j));
}
cor[i]=add_or(ns);
cnx[i]=add_not(add_xor(ns));
}
for(int i=0;i<h;i++){
vector<int>ns;
for(int j=0;j<w;j++){
ns.push_back(fpt(j,i));
}
ror[i]=add_or(ns);
rnx[i]=add_not(add_xor(ns));
}
vector<int>r;
for(int dx=0;dx<=k;dx++){
int dy=k-dx;
vector<int>a1;
for(int i=0;i+dx<w;i++){
vector<int>ns{cor[i],cor[i+dx]};
if(!dx){
ns.push_back(cnx[i]);
}
a1.push_back(add_and(ns));
}
vector<int>a2;
for(int j=0;j+dy<h;j++){
vector<int>ns{ror[j],ror[j+dy]};
if(!dy){
ns.push_back(rnx[j]);
}
a2.push_back(add_and(ns));
}
if(a1.size()&&a2.size()){
vector<int>b{add_or(a1),add_or(a2)};
r.push_back(add_and(b));
}
}
add_or(r);
}
# | 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... |