Submission #211663

#TimeUsernameProblemLanguageResultExecution timeMemory
211663thebesBulb Game (FXCUP4_bulb)C++17
0 / 100
5 ms384 KiB
#include "bulb.h" #include <bits/stdc++.h> using namespace std; typedef vector<int> vi; typedef pair<int,int> pii; #define pb push_back const int MN = 3e5+5; int N, i, ok[MN], res[MN], f, f2; pii ed[MN]; int acc(int n){ if(n<0) return 0; if(res[n]) return res[n]; res[n]=ed[n].first<0?ed[n].first:acc(ed[n].first); return res[n]; } int solve(int n){ while(n>=0){ if(ed[n].second==-2||acc(ed[n].second)==-2) return 0; n = ed[n].first; } return 1; } int FindWinner(int T,vi L,vi R){ N = L.size(); int cur = 0; for(i=0;i<N;i++) ed[i]={L[i],R[i]}; while(cur>=0){ ok[cur] = 1; if(!f2){ if(solve(ed[cur].second)) f=1; } if(ed[cur].second==-2||acc(ed[cur].second)==-2) f2=1; cur = ed[cur].first; } if(acc(0)==-2) return 0; else return f; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...