만드는 중입니다

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

동까뚱뽭 게임

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

요약
루트가 1번인 트리에서 각 시작 정점마다 말을 자식 정점으로 옮기는 게임의 승자를 구합니다. 동우가 먼저 두고, 점수가 같으면 혁준이 이깁니다.
난이도

보통10점 중 7점

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

문제

동우와 혁준이는 동까뚱뽭 게임을 하려고 한다. 동까뚱뽭 게임은 정점의 개수가 NN개이고, 11번 정점을 루트로 하는 트리 위에서 말 한 개를 옮기며 진행하는 게임이다. 시작 정점을 11번부터 NN번까지 바꿔 가며 총 NN번의 게임을 진행하고, 각 게임은 시작 정점에 말을 둔 뒤 시작한다. 진행 방식은 다음과 같다.

  1. 현재 말이 있는 정점이 말단 정점(leaf node)이면 4번으로 이동한다.
  2. 현재 턴의 플레이어는 말이 있는 정점의 자식 정점 중 하나로 말을 옮기고 1점을 얻는다.
  3. 턴을 상대방에게 넘긴 뒤 1번으로 돌아간다.
  4. 점수가 높은 사람이 승리하고 게임이 끝난다.

동우는 게임의 제왕 혁준이에게 상대가 안 되기 때문에 선공을 가져간다. 동점이면 혁준이가 이긴다. 두 사람 모두 최적의 방법으로 게임을 했다고 가정한다.

입력

첫 번째 줄에 정수 NN이 주어진다. (1≤N≤100 000)(1 \le N \le 100\,000)

두 번째 줄부터 N−1N-1개의 줄에 간선 정보 u,vu,v가 공백으로 구분되어 주어진다. 이는 두 정점 u,vu,v가 간선으로 연결되어 있다는 뜻이다. u,vu,v는 정수이며, 같은 간선 정보는 주어지지 않는다. (1≤u,v≤N;u≠v)(1 \le u,v \le N; u \neq v)

입력으로 주어지는 트리는 항상 올바른 트리이다.

출력

ii번 정점에서 게임을 시작했을 때 동우가 이기면 donggggas를, 혁준이가 이기면 uppercut을 ii번째 줄에 출력한다. (1≤i≤N)(1 \le i \le N)

예제1

  1. 예제 1

    입력
    9
    1 4
    1 5
    2 4
    1 3
    5 6
    6 7
    6 8
    8 9
    
    예상 출력
    donggggas
    uppercut
    uppercut
    donggggas
    uppercut
    donggggas
    uppercut
    donggggas
    uppercut