Submission #149460

#TimeUsernameProblemLanguageResultExecution timeMemory
149460mit한의대지망생 (#200)Bulb Game (FXCUP4_bulb)C++17
0 / 100
2 ms348 KiB
#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;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...