Submission #983078

#TimeUsernameProblemLanguageResultExecution timeMemory
983078Muhammad_AneeqGame (APIO22_game)C++17
0 / 100
5 ms14424 KiB
// #include "game.h" #include <vector> #include <set> using namespace std; int N,K; int const MAXN=300000+10; set<int>nei[MAXN]={}; bool vis[MAXN]={}; int cur=1; void init(int n, int k) { N=n,K=k; for (int i=0;i<k-1;i++) nei[i].insert(i+1); } vector<int>p; bool check_cycle(int n) { vis[n]=cur; p.push_back(n); for (auto i:nei[n]) { if (vis[i]==cur) { bool w=0; for (int j=p.size()-1;j>=0;j--) { if (p[j]==i) break; w=(w||(p[j]<K)); } if (w) return 1; } if (vis[i]) continue; if (check_cycle(i)) return 1; } return 0; } int add_teleporter(int u, int v) { nei[u].insert(v); cur=1; for (int i=0;i<N;i++) vis[i]=0; for (int i=0;i<K;i++) { if (vis[i]==0) { p={}; if (check_cycle(i)) return 1; } cur++; } 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...