Submission #723976

#TimeUsernameProblemLanguageResultExecution timeMemory
723976GrandTiger1729Vision Program (IOI19_vision)C++17
33 / 100
8 ms1736 KiB
#include "vision.h"
#ifndef EVAL
#include "grader.cpp"
#endif

#include <bits/stdc++.h>
using namespace std;

const int C = 10000;
void construct_network(int n, int m, int K){
	auto valid = [&](int i, int j) -> int {
		return 0 <= i && i < n && 0 <= j && j < m;
	};
	auto idx = [&](int i, int j) -> int {
		return i * m + j;
	};
	vector<pair<int, int>> res;
	for (int i = 0; i < n; i++){
		for (int j = 0; j < m; j++){
			for (int k = 0; k <= K; k++){
				if (k != K && valid(i + (K - k), j - k))
					res.emplace_back(idx(i, j), idx(i + (K - k), j - k));
				if (k != 0 && valid(i + (K - k), j + k))
					res.emplace_back(idx(i, j), idx(i + (K - k), j + k));
			}
		}
	}
	vector<int> qry;
	random_shuffle(res.begin(), res.end());
	for (int i = 0; i < min((int)res.size(), C - 1); i++)
		qry.push_back(add_and({res[i].first, res[i].second}));
	add_or(qry);
}
#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...