만드는 중입니다

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

나의 라임 오렌지 나무

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

요약
간선마다 라임 오렌지 개수가 있는 트리에서 시작 정점을 1부터 N까지 바꿔 가며 선공이 이기는지 판별합니다.
난이도

보통10점 중 7점

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

문제

제제가 아끼는 라임 오렌지 나무 밍기뉴는 정점의 개수가 NN, 간선의 개수가 N−1N-1인 연결 그래프이다. 밍기뉴의 ii번 간선에는 aia_i개의 라임 오렌지가 달려 있다. 제제와 포르투가는 밍기뉴 위에서 게임을 하려고 한다. 첫 번째 턴에는 제제가 밍기뉴의 뿌리인 rr에 말을 놓고, 각 턴마다 두 사람은 다음 과정을 반복한다.

  • 말이 놓인 정점과 인접한 간선을 아무거나 선택한다.
  • 선택한 간선에 있는 라임 오렌지를 1개 이상 딴다.
  • 말을 선택한 간선의 반대편 정점으로 이동한다.

더 이상 턴을 진행할 수 없을 때, 즉 말이 놓인 정점과 인접한 어느 간선에도 딸 라임 오렌지가 없을 때 그 턴의 플레이어는 게임에서 패배한다. r=1,2,⋯ ,Nr = 1, 2, \cdots, N일 때, 제제가 이기면 "Zeze", 포르투가가 이기면 "Portuga"를 따옴표 없이 출력하는 프로그램을 작성하자.

입력

첫 번째 줄에는 밍기뉴의 정점의 개수 NN이 주어진다.

두 번째 줄부터 NN번째 줄까지 N−1N-1개의 줄에는 각각 간선의 양 끝점 xix_i, yiy_i와 그 간선에 달린 라임 오렌지의 개수 aia_i가 xix_i yiy_i aia_i의 형태로 주어진다.

출력

r=1,2,⋯ ,Nr = 1, 2, \cdots, N일 때 제제가 이기면 "Zeze", 포르투가가 이기면 "Portuga"를 따옴표 없이 NN개의 줄에 걸쳐 출력한다.

제한

  • 1≤N≤3×1051 \le N \le 3 \times 10^5
  • 1≤ai≤1091 \le a_i \le 10^9

예제2

  1. 예제 1

    입력
    3
    3 1 1
    1 2 1
    
    예상 출력
    Zeze
    Portuga
    Portuga
    
  2. 예제 2

    입력
    20
    19 2 837009437
    19 3 555623333
    9 6 932422073
    7 11 384958865
    5 7 279037157
    19 5 301909012
    9 14 577327858
    10 15 372601829
    10 16 965167094
    13 10 840904695
    1 13 927245827
    4 1 133242826
    12 4 276397978
    19 12 736742142
    8 17 642702689
    9 8 70136361
    9 18 971340052
    19 9 307149033
    19 20 523797433
    
    예상 출력
    Zeze
    Portuga
    Portuga
    Zeze
    Portuga
    Portuga
    Zeze
    Zeze
    Zeze
    Zeze
    Portuga
    Zeze
    Zeze
    Portuga
    Portuga
    Portuga
    Zeze
    Portuga
    Zeze
    Portuga