#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... |