#include "bulb.h"
#include <vector>
using namespace std;
vector<int> L, R;
int n;
bool vis[300001];
bool chB[300001];
bool res[300001];
void dfs(int x) {
if (vis[x]) return;
vis[x] = 1;
if (L[x] < 0) {
res[x] = L[x] == -2;
}
else {
dfs(L[x]);
res[x] = res[L[x]];
}
if (R[x] < 0) {
chB[x] = R[x] == -2;
}
else {
dfs(R[x]);
chB[x] = res[R[x]];
}
}
int FindWinner(int T, vector<int> _L, vector<int> _R) {
n = _L.size();
L = _L;
R = _R;
for (int x = 0; x < n; ++x) {
swap(L[x], R[x]);
dfs(0);
int i;
for (i = 0; i < n; ++i) {
if (chB[i]) break;
}
if (i == n) return 1;
swap(L[x], R[x]);
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
292 KB |
Output is correct |
2 |
Incorrect |
2 ms |
348 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
348 KB |
Output is correct |
2 |
Correct |
2 ms |
276 KB |
Output is correct |
3 |
Correct |
2 ms |
292 KB |
Output is correct |
4 |
Incorrect |
2 ms |
348 KB |
Output isn't correct |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
348 KB |
Output is correct |
2 |
Correct |
2 ms |
276 KB |
Output is correct |
3 |
Correct |
2 ms |
292 KB |
Output is correct |
4 |
Incorrect |
2 ms |
348 KB |
Output isn't correct |
5 |
Halted |
0 ms |
0 KB |
- |