Submission #982773

#TimeUsernameProblemLanguageResultExecution timeMemory
982773vjudge1Game (APIO22_game)C++17
2 / 100
13 ms25172 KiB
#include "game.h"
#include <bits/stdc++.h>
#define rep(a,b,c) for(int a=b; a<c; a++)
#define repr(a,b,c) for(int a=b-1; a>c-1; a--)
#define repa(a,b) for(auto a:b)
#define fi first
#define se second
#define pii pair<int, int>
#define ll long long
#define pb push_back

using namespace std;

int N, K;
const int lim=5e5+5;
vector<int> adj[lim];
bool ans=false;
int vis[lim];
vector<int> sub[lim];

void init(int n, int k) {
	N=n; K=k;
	fill(vis,vis+n,-1);
	rep(i,0,k) vis[i]=i;
}

void dfs(int u, int r){
	//cout<<u<<" "<<vis[u]<<" "<<r<<endl;
	vis[u]=max(vis[u],r);
	if(u<K && vis[u]>u) ans=true;
	repa(v,adj[u]) if(vis[v]<r) dfs(v,r);
}

int add_teleporter(int u, int v) {
	adj[u].pb(v);
	if(vis[u]!=-1) dfs(u,vis[u]);
	if(u==v && u<K) ans=true;
	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...