# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
283156 | 2020-08-25T10:41:29 Z | aymanrs | Vision Program (IOI19_vision) | C++14 | 0 ms | 0 KB |
#include <iostream> #include <vector> #include "vision.h" bool valid(int H, int W, int i, int j){ return i >= 0 && i < H && j >= 0 && j < W; } void construct_network(int H, int W, int K){ int ind = H*W; for(int i = 0;i < H;i++){ for(int j = 0;j < W;j++){ std::vector<int> pos; for(int x = -K; x <= K;x++){ int y = K - abs(x); if(valid(H, W, i+y, j+x)){ pos.push_back((i+y)*W + j+x); } } if(!pos.empty()){ add_or(pos); add_and({(i+y)*W, ind}); ind+=2; } } } std::vector<int> vec; for(int i = H*W+1;i < ind;i+=2){ vec.push_back(i); } add_or(vec); }