만드는 중입니다

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

강도의 여행

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

요약
도시 N개가 트리 형태로 연결되어 있을 때, 각 도시에서 가장 가까운 더 부유한 도시를 찾습니다. 거리가 같으면 돈이 적은 도시를 고릅니다.
난이도

보통10점 중 7점

유형
트리, 유니온 파인드, 정렬
정답자
아직 제출이 없습니다

문제

모노폴리스는 아름답고 부유한 나라다. 이 나라의 특징 중 하나는 도로망이다. 도시 NN개가 길이가 같은 도로 N−1N-1개로 이어져 있어서 어떤 두 도시든 서로 오갈 수 있다.

모노폴리스의 또 다른 특징은 각 도시에 은행이 하나씩 있고, 은행마다 보유한 돈이 서로 다르다는 것이다. 그래서 각 도시에 1부터 NN까지 서로 다른 번호를 붙여 부의 순위를 나타낼 수 있다. 도시 1의 돈이 가장 적고, 도시 NN의 돈이 가장 많다.

롭은 모노폴리스로 "출장"을 떠날 계획이다. 롭의 일은 강도질, 정확히는 은행털이다. 롭은 야심 있는 강도이며 정해진 방식을 따른다. 방금 턴 은행보다 돈이 많은 은행만 노린다. 도시 ii에서 털고 나면 ii보다 돈이 많은 도시 중 가장 가까운 곳으로 이동한다. 같은 거리에 그런 도시가 여러 곳이면 그중 돈이 가장 적은 도시를 고른다. ii보다 부유한 도시가 없으면 롭은 같은 도시에 머물며 자신의 행동을 돌아본다.

롭은 이 방식을 엄격히 지키면서도 출장 계획에 도움을 청한다. 각 도시 ii에 대해, 첫 번째 강도 짓을 도시 ii에서 했을 때 다음으로 방문할 도시를 알고 싶어 한다.

입력

첫 줄에 모노폴리스의 도시 수 NN이 주어진다 (1≤N≤1051 \le N \le 10^5). 각 도시는 부가 많아지는 순서대로 1부터 NN까지의 서로 다른 정수로 구분된다.

이어지는 N−1N-1개의 줄에는 정수 UU와 VV가 주어진다 (1≤U,V≤N1 \le U, V \le N, U≠VU \ne V). 이는 도시 UU와 VV를 잇는 양방향 도로가 있다는 뜻이다. 주어진 도로로 모든 도시 쌍 사이에 경로가 존재함이 보장된다.

출력

NN개의 정수를 한 줄에 출력한다. ii번째 정수는 첫 번째 강도 짓을 도시 ii에서 했을 때 롭이 다음으로 방문할 도시다.

예제3

  1. 예제 1

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

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

    입력
    1
    
    예상 출력
    1