#include "vision.h"
#include <math.h>
#include <vector>
using namespace std;
int dist(int a, int b, int w){
int ra, ca, rb, cb;
ra = a%w;
rb = b%w;
ca = a/w;
cb = b/w;
return abs(ra-rb)+abs(ca-cb);
}
void construct_network(int H, int W, int K) {
vector<int> ns;
vector<int> bigns(0);
int lastindex = H*W;
// lemma 2: brute force is not sigma.
int n=H*W;
for(int i=0; i<n; i++){
ns = {i};
add_and(ns); // this is @ lastindex now :p
ns.clear();
for(int j=0; j<n; j++){
if(j>i && dist(i,j,W)==K){
ns.push_back(j);
}
}
if(ns.size()==0){
lastindex++;
continue;
}
add_or(ns); // this is @ lastindex+1 :p
ns.clear();
ns = {lastindex, lastindex+1};
add_and(ns); // this is @ lastindex+2 :P
ns.clear();
bigns.push_back(lastindex+2);
lastindex+=3;
}
add_or(bigns);
}
# | 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... |