제출 #422732

#제출 시각아이디문제언어결과실행 시간메모리
422732KoDVision Program (IOI19_vision)C++17
44 / 100
14 ms2244 KiB
#include <bits/stdc++.h>
#include "vision.h"

template <class T> using Vec = std::vector<T>;

void construct_network(int H, int W, int K) {
	const auto cell = [&](const int i, const int j) {
		return i * W + j;
	};
	const auto inside = [&](const int i, const int j) {
		return 0 <= i and i < H and 0 <= j and j < W;
	};
	Vec<int> check;
	for (int i = 0; i < H; ++i) {
		for (int j = 0; j < W; ++j) {
			Vec<int> see;
			int x = i, y = j + K;
			while (y > j) {
				if (inside(x, y)) {
					see.push_back(cell(x, y));
				}
				x += 1;
				y -= 1;
			}
			while (x > i) {
				if (inside(x, y)) {
					see.push_back(cell(x, y));
				}
				x -= 1;
				y -= 1;
			}
			if (!see.empty()) {
				const int exists = add_or(see);
				check.push_back(add_and(Vec<int>{cell(i, j), exists}));
			}
		}
	}
	add_or(check);
}
#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...