Submission #1195169

#TimeUsernameProblemLanguageResultExecution timeMemory
1195169madamadam3Vision Program (IOI19_vision)C++20
33 / 100
1094 ms3600 KiB
#include "vision.h"
#include <bits/stdc++.h>

using namespace std;

#define all(x) (x).begin(), (x).end()
#define FOR(i, a, b) for (int i = a; i < b; i++)
#define each(a, x) for (auto &x : a) 
#define srt(x) sort(all(x))
#define sz(x) (int) (x).size()
#define pb push_back
#define trace(x) for (auto &el : x) cout << el << " "

using pi = pair<int, int>;
using vi = vector<int>;
using vpi = vector<pi>;

int H, W, K;

int coord_to_int(int i, int j) {
	return i * W + j;
}

int instruction_to_int(int i) {
	return H * W + i;
}

pi int_to_coord(int inp) {
	return {inp / W, inp % W};
}

int manhattan(int x1, int y1, int x2, int y2) {
	return abs(x1 - x2) + abs(y1 - y2);
}

void construct_network(int _H, int _W, int _K) {
	H = _H; W = _W; K = _K;

	vpi a, b;
	FOR(x1, 0, H) {
		FOR(y1, 0, W) {
			FOR(x2, 0, H) {
				FOR(y2, 0, W) {
					if (manhattan(x1, y1, x2, y2) != K) continue;
					a.pb({x1, y1});
					b.pb({x2, y2});
				}
			}
		}
	}

	int vpairs = sz(a);
	FOR(i, 0, vpairs) {
		add_and({coord_to_int(a[i].first, a[i].second), coord_to_int(b[i].first, b[i].second)});
	}

	vi ors;
	FOR(i, 0, vpairs) {
		ors.pb(instruction_to_int(i));
	}

	add_or(ors);
}
#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...