만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

나무에서 나뭇가지가 다 사라지면?

시간 제한1초메모리 제한1024 MB

요약
두 사람이 트리에서 루트부터 한 정점까지의 경로를 가져가고, 가져간 돌로 하는 님 게임의 결과로 턴을 정합니다. 두 사람의 최적 대결에서 승자를 구합니다.
난이도

어려움10점 중 8점

유형
트리, 게임 이론, 동적 계획법, 비트 연산
정답자
아직 제출이 없습니다

문제

가지런하다

동우와 재우가 NN개의 정점으로 이루어진 트리 TT에서 게임을 한다. 정점은 11번부터 NN번까지 번호가 붙어 있고, 트리의 루트는 11번 정점이다. ii번 정점에는 CiC_i개의 돌이 있다. 게임은 동우부터 시작해 두 사람이 턴을 번갈아 진행한다. 한 턴은 다음과 같이 진행한다.

현재 턴을 진행하는 사람을 A, 다른 사람을 B라 하자. 현재 상태의 포레스트를 FF라 하며, 처음에는 F={T}F=\{T\}이다.

  1. A는 FF에 포함된 트리 하나를 고른다. 남은 트리가 없다면 A가 진다.
  2. A가 고른 트리를 T0T_0라 하고, 그 루트 정점을 rr이라 하자.
  3. A는 T0T_0에서 정점 vv를 하나 고른다. rr에서 vv까지 경로 위의 모든 정점을 양 끝점을 포함해 가져온다. r=vr=v이면 rr만 가져온다.
  4. 가져온 정점들로 B부터 시작하는 님 게임을 한다. 두 사람은 번갈아 행동한다. 각 행동에서는 돌이 1개 이상 있는 정점을 하나 골라 원하는 만큼 돌을 가져간다. 더 이상 행동하지 못하는 사람이 진다.
  5. 이 님 게임에서 B가 이기면, 원래 게임도 즉시 B가 이긴다.
  6. 님 게임에서 A가 이겼다면, T0T_0를 다음과 같이 재배치한다. T0T_0에서 rr과 직접 연결된 정점마다 그 정점을 루트로 하는 서브트리를 FF에 추가한다. 단, vv를 포함하는 서브트리는 추가하지 않는다. 그 뒤 T0T_0를 FF에서 제거한다.

처음 포레스트에는 트리가 하나뿐이지만, 게임이 진행되면서 서로 연결되지 않은 여러 트리로 이루어진 포레스트가 될 수 있다.

자신의 턴에 행동할 수 없는 플레이어가 패배한다. 두 사람이 최적으로 게임을 진행할 때 누가 이기는지 판단하라.

입력

첫째 줄에 트리의 정점 개수 NN (1≤N≤200 0001 \le N \le 200\,000)이 주어진다.

둘째 줄에 각 정점에 놓인 돌의 개수 C1,C2,⋯ ,CNC_1, C_2, \cdots, C_N (0≤Ci≤1090 \le C_i \le 10^9)이 공백으로 구분되어 주어진다. ii번 정점에 CiC_i개의 돌이 있다는 뜻이다.

셋째 줄부터 N−1N-1개의 줄에 걸쳐 트리에서 직접 연결된 두 정점 번호 Pi,QiP_i, Q_i (1≤Pi,Qi≤N1 \le P_i, Q_i \le N, Pi≠QiP_i \ne Q_i)가 공백으로 구분되어 주어진다.

주어지는 입력은 항상 트리이다.

출력

동우가 이기면 첫째 줄에 kidw0124를, 재우가 이기면 eoaud0108을 출력한다.

힌트

이 문제의 제목과 제목에 대한 답은 kidw0124의 아이디어이다.

예제5

  1. 예제 1

    입력
    1
    0
    
    예상 출력
    kidw0124
    
  2. 예제 2

    입력
    1
    1
    
    예상 출력
    eoaud0108
    
  3. 예제 3

    입력
    2
    124 124
    1 2
    
    예상 출력
    kidw0124
    
  4. 예제 4

    입력
    2
    124 108
    1 2
    
    예상 출력
    eoaud0108
    
  5. 예제 5

    입력
    4
    1 1 2 2
    1 2
    1 3
    3 4
    
    예상 출력
    eoaud0108