Submission #150199

#TimeUsernameProblemLanguageResultExecution timeMemory
150199(παρα)γεμιστά (#200)Bulb Game (FXCUP4_bulb)C++17
0 / 100
2 ms380 KiB
#include "bulb.h" #include<vector> #include<iostream> #define rep(i,a,b) for(int i = a;i < b;i++) #define MAXN 300004 using namespace std; int N; int root = 0; vector < int > Ls,Rs; vector < bool > blues(MAXN); bool vis[MAXN]; bool whowins(int cur) { if(cur==-1) return 1; else if(cur==-2) return 0; return whowins(Rs[cur]); } void init(int cur,int cntleft,int left1,int left2) { if(cntleft > 2) return; vis[cur] = true; if(cur == -1) { return; } else if(cur == -2) { if(cntleft == 2) { blues[left1] = true; blues[left2] = true; } return; } init(Rs[cur],cntleft,left1,left2); if(cntleft == 0) left1 = cur; else left2 = cur; init(Ls[cur],cntleft,left1,left2); return; } int FindWinner(int T, std::vector<int> L, std::vector<int> R){ N = L.size(); Ls = L; Rs = R; if(whowins(root)) { init(0,0,N,N); bool found = false; rep(i,0,N) { if(!blues[i] && vis[i]) { found=true; break; } } return !found; } else return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...