제출 #977699

#제출 시각아이디문제언어결과실행 시간메모리
977699opPOVision Program (IOI19_vision)C++14
8 / 100
3 ms596 KiB
#include "vision.h"
#include <bits/stdc++.h>

using namespace std;

int h, w, k;

pair<int, int> get_by_index(int i) {
    return make_pair(i / w, i % w);
}

int dist(int x1, int y1, int x2, int y2) {
    return abs(x1 - x2) + abs(y1 - y2);
}

void construct_network(int H, int W, int K) {
    h = H; w = W; k = K;
    vector<int> cells;
    if (min(h, w) != 1 || max(h, w) > 10) {
        for (int i = 0; i < h; i++) {
            for (int j = 0; j < w; j++) {
                if (dist(0, 0, i, j) == k) {
                    cells.push_back(add_and({0, i * w + j}));
                }
            }
        }
    } else {
        for (int i1 = 0; i1 < h; i1++) {
            for (int j1 = 0; j1 < w; j1++) {
                for (int i2 = 0; i2 < h; i2++) {
                    for (int j2 = 0; j2 < w; j2++) {
                        if (dist(i1, j1, i2, j2) == k) {
                            cells.push_back(add_and({i1 * w + j1, i2 * w + j2}));
                        }
                    }
                }
            }
        }
    }
    add_or(cells);
}

/*
g++ -std=gnu++14 -O2 -Wall -pipe -static -o "vision" "grader.cpp" "vision.cpp"
*/
#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...