제출 #738222

#제출 시각아이디문제언어결과실행 시간메모리
738222NeroZeinVision Program (IOI19_vision)C++17
33 / 100
377 ms1048576 KiB
#include "vision.h"
#include <bits/stdc++.h> 
using namespace std; 

int n, m;

void construct_network(int H, int W, int K) {
	n = H, m = W; 
	vector<pair<int, int>> pairs; 
	auto dis = [&](int i, int j, int ii, int jj) {
		return abs(ii - i) + abs(jj - j);
	};
	vector<vector<int>> vis(n * m, vector<int>(n * m)); 
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < m; ++j) {
			for (int ii = 0; ii < n; ++ii) {
				for (int jj = 0; jj < m; ++jj) {
					if (dis(i, j, ii, jj) == K) {
						int left = i * m + j;
						int right = ii * m + jj;
						if (left > right) swap(left, right); 
						if (!vis[left][right]) {
							pairs.push_back({left, right});
							vis[left][right] = true; 
						}
					}
				}
			}
		}
	}
	int cur = n * m;
	vector<int> ask; 
	for (int i = 0; i < (int) pairs.size(); ++i) {
		vector<int> v; 
		v.push_back(pairs[i].first);
		v.push_back(pairs[i].second); 
		add_and(v); 
		ask.push_back(cur++); 
	}
	if (ask.empty()) {
		ask = vector<int> ({0, 0}); 
		add_xor(ask);
	}
	else {
		add_or(ask); 
	}
}
#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...