Submission #1160976

#TimeUsernameProblemLanguageResultExecution timeMemory
1160976Aviansh게임 (APIO22_game)C++17
0 / 100
7 ms14468 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; const int maxn = 3e5+12; vector<int>g[maxn]; vector<int>rg[maxn]; //maximum special that can get to here: int s[maxn]; //minimum special that it can go to: int e[maxn]; int myk; int myn; void init(int n, int k) { myk=k; myn=n; fill(s,s+n,-1); fill(e,e+n,1e9); for(int i = 0;i<k-1;i++){ g[i].push_back(i+1); rg[i+1].push_back(i); s[i]=i; e[i]=i+1; } s[k-1]=k-1; } int ans = 0; //this will do maximising void dfs1(int st,int val){ if(s[st]>=val){ return; } s[st]=val; if(e[st]<=s[st]){ ans=1; } for(int i : g[st]){ if(s[i]>=val){ continue; } dfs1(i,val); } } //this will do minimising void dfs2(int st,int val){ if(e[st]<=val){ return; } e[st]=val; if(e[st]<=s[st]){ ans=1; } for(int i : rg[st]){ if(e[i]<=val){ continue; } dfs2(i,val); } } int add_teleporter(int u, int v) { g[u].push_back(v); rg[v].push_back(u); dfs1(v,s[u]); dfs2(u,e[v]); if(ans>0){ return 1; } else{ return 0; } }
#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...