제출 #401671

#제출 시각아이디문제언어결과실행 시간메모리
401671snasibov05Vision Program (IOI19_vision)C++14
33 / 100
3 ms968 KiB
#include "vision.h"
#include <set>

using namespace std;

#define pb push_back

void construct_network(int H, int W, int K) {

    vector<int> v;
    int k = H*W;

    for (int i = 0; i < H; ++i) {
        for (int j = 0; j < W; ++j) {
            int cur = i * W + j;
            vector<int> arr;
            arr.pb(cur);
            add_and(arr);
            arr.pop_back();
            int x = k;
            k++;
            for (int l = 0; l <= K; ++l) {
                int to = (i + l) * W + j + (K - l);
                if (to >= 0 && to < H*W && j + (K - l) < W && i + l < H){
                    arr.pb(to);
                }
                to = (i + l) * W + j - (K - l);
                if (to >= 0 && to < H*W && j - (K - l) >= 0 && i + l < H){
                    arr.pb(to);
                }
                to = (i - l) * W + j + (K - l);
                if (to >= 0 && to < H*W && j + (K - l) < W && i - l >= 0){
                    arr.pb(to);
                }
                to = (i - l) * W + j - (K - l);
                if (to >= 0 && to < H*W && j - (K - l) >= W && i - l >= H){
                    arr.pb(to);
                }

                if (arr.empty()) continue;
                add_or(arr);
                arr = {x , k++};
                add_and(arr), k++, v.pb(k-1);
                arr.clear();
            }
        }
    }

    add_or(v);

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...