Submission #622565

#TimeUsernameProblemLanguageResultExecution timeMemory
622565gromperenGame (APIO22_game)C++17
30 / 100
4094 ms2956 KiB
#include "game.h"
#include <bits/stdc++.h>

using namespace std;

vector<vector<int>> adj;
vector<int> vis;
int n;
int k;

bool ans = 0;
int from;

void init(int nn, int kk) {
	n = nn;
	k = kk;
	adj.resize(n);
	for (int i = 0; i < k-1; ++i) {
		adj[i].push_back(i+1);
	}
}

void dfs(int u) {
	if (ans) return;
	if (u < from) {
		ans = 1;
		return;
	}
	if (vis[u]) {
		if (u == from) ans = 1;
		return;
	}
	vis[u] = 1;
	for (int v : adj[u]) {
		dfs(v);
	}
	return;
}

int add_teleporter(int u, int v) {
	vis.assign(n, 0);
	adj[u].push_back(v);
	for (from = k-1; from >= 0; --from) 
		dfs(from);

	return ans;
}
#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...