Submission #388845

#TimeUsernameProblemLanguageResultExecution timeMemory
388845SuhaibSawalha1Vision Program (IOI19_vision)C++17
33 / 100
105 ms1096 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;

int dist (array<int, 2> a, array<int, 2> b) {
	return abs(a[0] - b[0]) + abs(a[1] - b[1]);
}

void construct_network(int n, int m, int k) {
	auto val = [&] (int i, int j) {
		return i * m + j;
	};
	vector<int> OR, totalOR;
	int cur = n * m;
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < m; ++j) {
			for (int h = 0; h < n; ++h) {
				for (int w = 0; w < m; ++w) {
					if (dist({i, j}, {h, w}) == k) {
						add_and({val(i, j), val(h, w)});
						OR.push_back(cur++);
						if (OR.size() == 10000) {
							totalOR.push_back(cur++);
							add_or(OR);
							OR.clear();
						}
					}
				}
			}
		}
	}
	if (OR.size()) {
		totalOR.push_back(cur++);
		add_or(OR);
		OR.clear();
	}
	add_or(totalOR);
}
#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...