# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1048419 | nisanduu | Vision Program (IOI19_vision) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
bool c(int i,int j,int n,int m){
if(i<0||j<0||i>=n||j>=m) return false;
return true;
}
void construct_network(int H, int W, int K) {
vector<int> indexes;
set<pair<int,int>> s;
int n = H, m = W, k = K;
for(int i=0;i<H;i++){
for(int j=0;j<W;j++){
int cr = i*W + j;
for(int r=0;r<=k;r++){
int rem = k-r;
if(c(i+r,j+rem,n,m)){
int nin = (i+r)*W + (j+rem);
//int in = add_and({nin,cr});
s.insert({nin,cr});
}
if(c(i-r,j+rem,n,m)){
int nin = (i-r)*W + (j+rem);
//int in = add_and({nin,cr});
s.insert({nin,cr});
}
if(c(i+r,j-rem,n,m)){
int nin = (i+r)*W + (j-rem);
//int in = add_and({nin,cr});
s.insert({nin,cr});
}
if(c(i-r,j-rem,n,m)){
int nin = (i-r)*W + (j-rem);
//int in = add_and({nin,cr});
s.insert({nin,cr});
}
}
}
}
for(auto z:s){
int i = add_and({z.first,z.second});
indexes.push_back(in);
}
int f = add_or(indexes);
}