Submission #1305797

#TimeUsernameProblemLanguageResultExecution timeMemory
1305797basicGame (APIO22_game)C++20
30 / 100
4061 ms5656 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
int vs[303030], n, k;
vector<int> e[303030], re[303030];
void init(int N, int K) {
	n = N, k = K;
	for (int i = 1; i < k; i++)
		e[i - 1].push_back(i), re[i].push_back(i - 1);
}
pair<int, int> dfs(int x, vector<int> e[]) {
	vs[x] = 0;
	pair<int, int> r{1e6, -1e6}, t;
	if (x < k)
		r = {x, x};
	for (int i : e[x])
		if (vs[i])
			t = dfs(i, e), r.first = min(r.first, t.first), r.second = max(r.second, t.second);
	return r;
}
int add_teleporter(int u, int v) {
	e[u].push_back(v), re[v].push_back(u);
	fill(vs, vs + n, 1);
	int x = dfs(u, re).second;
	fill(vs, vs + n, 1);
	return x >= dfs(v, e).first;
}
#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...