#include <bits/stdc++.h>
#include "vision.h"
using namespace std;
int ind(int lin,int col,int W){
return lin*W+col;
}
bool inmat(int lin,int col,int H,int W){
return 0<=lin && lin<H && 0<=col && col<W;
}
int dist(int l1,int c1,int l2,int c2){
return abs(l1-l2)+abs(c1-c2);
}
vector<int>coord(int l1,int l2,int c1,int c2,int W){
vector<int>coor;
int i,j;
for(i=l1;i<=l2;++i)
for(j=c1;j<=c2;++j)
coor.push_back(ind(i,j,W));
return coor;
}
void construct_network(int H, int W, int K) {
int i,j;
/// exista
vector<int>exist;
/// exista orizontal
vector<int>exoriz;
/// o singura linie
vector<int>asklinii;
for(i=0;i<H;++i)
asklinii.push_back(add_or(coord(i,i,0,W-1,W)));
exoriz.push_back(add_xor(asklinii));
/// coloane alaturate
vector<int>colal;
/// col par-impar
vector<int>askcpimp;
for(j=0;j<W-1;j+=2)
askcpimp.push_back(add_or(coord(0,H-1,j,j+1,W)));
if(j==W-1)
askcpimp.push_back(add_or(coord(0,H-1,j,j,W)));
colal.push_back(add_xor(askcpimp));
/// col impar-par
vector<int>askcimpp;
askcimpp.push_back(add_or(coord(0,H-1,0,0,W)));
for(j=1;j<W-1;j+=2)
askcimpp.push_back(add_or(coord(0,H-1,j,j+1,W)));
if(j==W-1)
askcimpp.push_back(add_or(coord(0,H-1,j,j,W)));
colal.push_back(add_xor(askcimpp));
exoriz.push_back(add_or(colal));
exist.push_back(add_and(exoriz));
/// exista vertical
vector<int>exvert;
/// o singura coloana
vector<int>askcoloane;
for(j=0;j<W;++j)
askcoloane.push_back(add_or(coord(0,H-1,j,j,W)));
exvert.push_back(add_xor(askcoloane));
/// linii alaturate
vector<int>linal;
/// lin par-impar
vector<int>asklpimp;
for(i=0;i<H-1;i+=2)
asklpimp.push_back(add_or(coord(i,i+1,0,W-1,W)));
if(i==H-1)
asklpimp.push_back(add_or(coord(i,i,0,W-1,W)));
linal.push_back(add_xor(asklpimp));
/// lin impar-par
vector<int>asklimpp;
asklimpp.push_back(add_or(coord(0,0,0,W-1,W)));
for(i=1;i<H-1;i+=2)
asklimpp.push_back(add_or(coord(i,i+1,0,W-1,W)));
if(i==H-1)
asklimpp.push_back(add_or(coord(i,i,0,W-1,W)));
linal.push_back(add_xor(asklimpp));
exvert.push_back(add_or(linal));
exist.push_back(add_and(exvert));
add_or(exist);
}
# | 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... |