Submission #581961

#TimeUsernameProblemLanguageResultExecution timeMemory
581961JomnoiVision Program (IOI19_vision)C++17
12 / 100
8 ms1872 KiB
#include <bits/stdc++.h>
#include "vision.h"
using namespace std;

int H, W;
set <pair <int, int>> mp;
vector <int> vec;

int id(int x, int y) {
	return x * W + y;
}

void construct_network(int h, int w, int K) {
	mp.clear();
	vec.clear();
	H = h, W = w;

	for(int i = 0; i < H; i++) {
		for(int j = 0; j < W; j++) {
			for(int k = 0; k < H; k++) {
				int l = K - abs(i - k), a, b;
				if(j - l >= 0 and j - l < W) {
					a = id(i, j), b = id(k, j - l);
					if(!mp.count(make_pair(a, b))) {
						mp.insert(make_pair(a, b));
						mp.insert(make_pair(b, a));
						vec.push_back(add_and(vector <int> ({a, b})));
					}
				}
				if(j + l >= 0 and j + l < W) {
					a = id(i, j), b = id(k, j + l);
					if(!mp.count(make_pair(a, b))) {
						mp.insert(make_pair(a, b));
						mp.insert(make_pair(b, a));
						vec.push_back(add_and(vector <int> ({a, b})));
					}
				}
			}
		}
	}
	add_or(vec);
}
#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...