만드는 중입니다

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

광장과 가로등

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

요약
나무 모양 도시에서 각 광장의 등 개수 범위가 주어질 때, 모든 말단 광장까지 경로의 점등 합이 같아지면서 최소 조건을 만족하는 광장을 찾습니다.
난이도

어려움10점 중 8점

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

문제

15세기 바르셀로나에는 nn개의 광장이 있었다. 일부 광장은 양방향 도로로 연결되어 있다. 도로는 모두 n−1n-1개이며, 어느 광장에서든 이 도로를 따라 다른 모든 광장에 도달할 수 있다. 즉, 광장들은 정점이 nn개인 트리를 이룬다.

ii번 광장에는 가로등이 rir_i개 있다. 칼럼은 도시가 더 밝을수록 템플 기사단과 싸우기 쉬워진다고 보고, 일부 광장의 가로등을 켜려 한다. ii번 광장이 충분히 밝으려면 그 광장에 켜진 가로등이 최소 lil_i개 있어야 한다.

칼럼은 다른 광장과 도로로 정확히 한 번만 연결된 광장을 외곽 광장이라고 부른다.

칼럼은 광장 vv가 다음 조건을 만족하면 밝은 광장이라고 부른다. 모든 광장이 충분히 밝아지도록 각 광장의 가로등을 켜는 방법이 존재하고, vv에서 vv를 제외한 모든 외곽 광장까지 가는 경로 위의 켜진 가로등 개수가 모두 같다.

경로 위의 켜진 가로등 개수는 그 경로에 있는 모든 광장의 켜진 가로등 개수를 합한 값이다.

칼럼이 어느 광장이 밝은 광장인지 알 수 있도록 도와주자.

입력

첫 줄에 자연수 nn이 주어진다. nn은 광장의 개수이며 2≤n≤1052 \le n \le 10^5이다.

다음 n−1n-1개 줄에는 도로 정보가 주어진다. ii번째 줄에는 도로로 연결된 두 광장의 번호 aia_i, bib_i가 주어진다 (1≤ai,bi≤n1 \le a_i, b_i \le n, ai≠bia_i \ne b_i).

다음 nn개 줄에는 각 광장의 가로등 정보가 주어진다. ii번째 줄에는 ii번 광장에서 켤 수 있는 가로등의 최소 개수 lil_i와 최대 개수 rir_i가 주어진다 (0≤li≤ri≤1040 \le l_i \le r_i \le 10^4).

주어진 광장들은 트리를 이룬다는 것이 보장된다.

출력

nn개의 수를 한 줄에 출력한다. ii번 광장이 밝은 광장이면 1, 아니면 0을 출력한다.

예제2

  1. 예제 1

    입력
    6
    1 2
    1 3
    1 4
    4 5
    5 6
    1 3
    0 4
    0 4
    2 3
    2 2
    0 0
    
    예상 출력
    1 1 1 1 0 1
    
  2. 예제 2

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