# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
149650 | 욱방켜!! (twitch.tv/wookje) (#200) | Bulb Game (FXCUP4_bulb) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "bulb.h"
std::vector<int> L, R;
int dist[300000], mdist;
void dfs(int c, int v)
{
mdist=max(mdist,v);
if(L[c]>=0) {
dist[L[c]]=dist[c]+1;
dfs(L[c],v);
}
if(R[c]>=0) {
dist[R[c]]=dist[c]+1;
dfs(R[c],v+1);
}
}
int FindWinner(int T, std::vector<int> L, std::vector<int> R){
int N = L.size(), c, n;
std::vector<int> temp;
::L=L; ::R=R;
for(c=0;c>=0;c=L[c]) {
for(n=R[c];n>=0;n=L[n]);
if(n==-2) {
if(R[c]==-2) return 0;
temp.push_back(R[c]);
}
}
if(c==-2 || temp.size()>1) return 0;
dfs(0,0);
if(temp.empty() && mdist>1) return 1;
for(c=temp[0];c>=0;c=L[c]) {
for(n=R[c];n>=0;n=L[n]);
if(n==-1) return 1;
}
return 0;
}