# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
154074 | stefantaga | Bulb Game (FXCUP4_bulb) | C++17 | 5 ms | 504 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "bulb.h"
using namespace std;
struct bec
{
int st,dr;
}val[300005];
bool notbec (int nr)
{
if (nr==-1||nr==-2)
{
return 0;
}
return 1;
}
void dfs (int x,vector <int> l,vector <int> r)
{
if (notbec(l[x]))
{
dfs(l[x],l,r);
val[x].st=val[l[x]].st;
}
else
{
val[x].st=l[x];
}
if (notbec(r[x]))
{
dfs(r[x],l,r);
val[x].dr=val[r[x]].st;
}
else
{
val[x].dr=r[x];
}
}
int FindWinner(int t,vector<int> l,vector<int> r)
{
int n= l.size(),poz,poz1;
poz=0;
while (poz!=-1&&poz!=-2)
{
poz=l[poz];
}
if (poz==-2)
{
return 0;
}
else
{
dfs(0,l,r);
if (val[0].dr==-2)
{
poz=l[0];
while (notbec(poz)==1)
{
if (val[r[poz]].st==-2)
{
return 0;
}
poz=l[poz];
}
poz=r[0];
while (notbec(poz)==1)
{
if (val[r[poz]].st==-1)
{
return 1;
}
poz=l[poz];
}
return 1;
}
else
{
int ok;
poz=l[0];
while (notbec(poz)==1)
{
poz1=r[poz];
ok=0;
while (notbec(poz1)==1)
{
if (val[r[poz1]].st==-2)
{
ok=1;
break;
}
poz1=l[poz1];
}
if (ok==0)
{
return 1;
}
poz=l[poz];
}
return 0;
}
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |