Submission #1412020


Source Code Expand

#include <iostream>
#include <sstream>
#include <fstream>

#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <cctype>
#include <cstring>

#include <algorithm>
#include <numeric>
#include <functional>
#include <string>
#include <vector>
#include <deque>
#include <stack>
#include <queue>
#include <list>
#include <map>
#include <set>
#include <utility>
#include <bitset>
#include <limits>
#include <climits>
using namespace std;

#ifdef DEBUG
#define NDEBUG
#endif
#undef NDEBUG
#include <cassert>

typedef long long ll;
typedef pair<int, int> ii;

#define sz(a)  int((a).size())
#define pb  push_back
#define FOR(var,from,to) for(int var=(from);var<=(to);++var)
#define rep(var,n)  for(int var=0;var<(n);++var)
#define rep1(var,n)  for(int var=1;var<=(n);++var)
#define repC2(vari,varj,n)  for(int vari=0;vari<(n)-1;++vari)for(int varj=vari+1;varj<(n);++varj)
#define ALL(c)  (c).begin(),(c).end()
#define RALL(c)  (c).rbegin(),(c).rend()
#define tr(i,c)  for(auto i=(c).begin(); i!=(c).end(); ++i)
#define found(s,e)  ((s).find(e)!=(s).end())
#define mset(arr,val)  memset(arr,val,sizeof(arr))
#define mid(x,y) ((x)+((y)-(x))/2)
#define IN(x,a,b) ((a)<=(x)&&(x)<=(b))



int solve(vector<vector<int>>& ne) {
    vector<int> xors;

    int N = ne.size();
    vector<int> parent(N);
    vector<vector<int>> children(N);
    parent[0] = -1;
    queue<int> q;
    q.push(0);
    vector<int> r;
    vector<int> visited(N, false);
    while (!q.empty()){
        int u = q.front(); q.pop();
        r.push_back(u);
        visited[u] = true;
        for (int v : ne[u]) {
            if (visited[v]) continue;
            parent[v] = u;
            children[u].push_back(v);
            q.push(v);
        }
    }
    reverse(ALL(r));
    vector<vector<int>> legs(N);
    // cout << parent << endl;
    // cout << r << endl;
    rep(i,N) {
        int v = r[i], u = parent[v];

        int L = legs[v].size();
        int msg = -1;
        switch (L) {
            case 0:
                msg = 1;
                if (v == 0) xors.push_back(msg);
                break;
            case 1:
                msg = legs[v][0] + 1;
                if (v == 0) xors.push_back(msg);
                break;
            default:
                int x = 0;
                rep(i, L) x ^= legs[v][i];
                xors.push_back(x);
                msg = 1;
                break;
        }
        if (u != -1 && msg != -1) {
            legs[u].push_back(msg);
        }
    }

    int ans = 0;
    for (int x : xors) ans += x;

    return ans;
}

int main(){
    int N; cin >> N;
    vector<vector<int>> ne(N);
    rep(i, N-1) {
        int x, y; cin >> x >> y;
        --x; --y;
        ne[x].pb(y); ne[y].pb(x);
    }
    int ans = solve(ne);
    cout << (ans == 0 ? "Bob" : "Alice") << endl;
    return 0;
}

Submission Info

Submission Time
Task D - Game on Tree
User naoya_t
Language C++14 (Clang 3.8.0)
Score 0
Code Size 2937 Byte
Status WA
Exec Time 224 ms
Memory 17784 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 1100
Status
AC × 4
AC × 29
WA × 14
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt, sample4.txt
All sample1.txt, sample2.txt, sample3.txt, sample4.txt, a1.txt, a10.txt, a11.txt, a12.txt, a13.txt, a14.txt, a15.txt, a16.txt, a17.txt, a18.txt, a19.txt, a2.txt, a20.txt, a21.txt, a22.txt, a23.txt, a24.txt, a25.txt, a26.txt, a27.txt, a28.txt, a29.txt, a3.txt, a30.txt, a4.txt, a5.txt, a6.txt, a7.txt, a8.txt, a9.txt, b1.txt, b2.txt, b3.txt, b4.txt, b5.txt, sample1.txt, sample2.txt, sample3.txt, sample4.txt
Case Name Status Exec Time Memory
a1.txt AC 9 ms 1016 KB
a10.txt WA 19 ms 1792 KB
a11.txt AC 19 ms 1792 KB
a12.txt AC 19 ms 1792 KB
a13.txt WA 212 ms 15096 KB
a14.txt WA 212 ms 15096 KB
a15.txt AC 166 ms 12152 KB
a16.txt AC 216 ms 15224 KB
a17.txt WA 206 ms 15096 KB
a18.txt WA 210 ms 15224 KB
a19.txt AC 198 ms 15224 KB
a2.txt WA 5 ms 512 KB
a20.txt AC 209 ms 15864 KB
a21.txt AC 170 ms 12920 KB
a22.txt WA 205 ms 15096 KB
a23.txt AC 210 ms 14968 KB
a24.txt WA 168 ms 12152 KB
a25.txt WA 211 ms 15224 KB
a26.txt AC 209 ms 15224 KB
a27.txt AC 205 ms 15224 KB
a28.txt WA 205 ms 15224 KB
a29.txt AC 215 ms 15864 KB
a3.txt AC 10 ms 1024 KB
a30.txt AC 169 ms 12920 KB
a4.txt WA 19 ms 1792 KB
a5.txt WA 19 ms 1792 KB
a6.txt AC 19 ms 1792 KB
a7.txt AC 19 ms 1792 KB
a8.txt WA 19 ms 1792 KB
a9.txt WA 19 ms 1792 KB
b1.txt AC 211 ms 17784 KB
b2.txt AC 221 ms 17784 KB
b3.txt AC 220 ms 17784 KB
b4.txt AC 224 ms 17784 KB
b5.txt AC 216 ms 17784 KB
sample1.txt AC 1 ms 256 KB
sample2.txt AC 1 ms 256 KB
sample3.txt AC 1 ms 256 KB
sample4.txt AC 1 ms 256 KB