# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
644938 | a_aguilo | 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.
void construct_network(int H, int W, int K) {
vector<int> possibilities;
for(int i = 0; i < W; ++i){
for(int j = 0; j < H; ++j){
int PosAct = i + j*W;
vector<int> AtDistanceK;
AtDistanceK.push_back(PosAct);
for(int w = 0; w <= K; ++w){
int h = K - w;
if(i + w < W){
if(j + h < H){
AtDistanceK.push_back((j+h)*W + i + w);
}
if(j - h >= 0){
AtDistanceK.push_back((j-h)*W + i + w);
}
}
if(i - w >= 0){
if(j + h < H){
AtDistanceK.push_back((j+h)*W + i - w);
}
if(j - h >= 0){
AtDistanceK.push_back((j-h)*W + i - w);
}
}
}
int hasTwoOnes = add_and({add_or(AtDistanceK), add_not(add_xor(AtDistanceK))});
possibilities.push_back(hasTwoOnes);
}
}
add_or(possibilities);
}