Submission #1225082

#TimeUsernameProblemLanguageResultExecution timeMemory
1225082Jer게임 (APIO22_game)C++20
30 / 100
4059 ms9608 KiB
#include "game.h"
#include <bits/stdc++.h>

using namespace std;

const int MAXN =  300005;
vector<int> con[MAXN];
int n, k;
bool vis[MAXN];

bool check(int i, int m){
	if (vis[i])
		return i < k and m >= i and m >= 0 and m < k;
	
	vis[i] = true;

	if (i < k) m = i;

	for (auto j : con[i])
		if (check(j, m)) return true;
	
	return false;
}


#define clear()	memset(vis, false, sizeof vis)

void init(int N, int K) {
	n = N, k = K;

	clear();
	for (int i = 0; i < n; i++)
		while (!con[i].empty()) con[i].pop_back();

	for (int i = 0; i < k - 1; i++)
		con[i].push_back(i + 1);
}

int add_teleporter(int u, int v) {
 	con[u].push_back(v);

	clear();
	return check(0, -1);
}
#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...