#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
int h,w,k;
int fpt(int x,int y){
return y*w+x;
}
int fc(int c){
return w*h+2*c-1;
}
int fcx(int c){
return w*h+2*c;
}
int fr(int r){
return w*h+2*w+2*r-1;
}
int frx(int r){
return w*h+2*w+2*r;
}
void construct_network(int H, int W, int K) {
h=H;
w=W;
k=K;
for(int i=0;i<w;i++){
vector<int>ns;
for(int j=0;j<h;j++){
ns.push_back(fpt(i,j));
}
add_or(ns);
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));
}
add_or(ns);
add_xor(ns);
}
vector<int>c;
for(int dx=0;dx<=k;dx++){
int dy=k-dx;
for(int i=0;i+dx<w;i++){
for(int j=0;j+dy<h;j++){
vector<int>n1{fc(i),fc(i+dx),fr(j),fr(j+dy)};
if(dx==0){
n1.push_back(add_not(fcx(i)));
}
if(dy==0){
n1.push_back(add_not(frx(j)));
}
c.push_back(add_and(n1));
}
}
}
add_or(c);
}
# | 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... |