만드는 중입니다

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

약수가 가득한 트리

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

요약
루트가 있는 트리의 정점 최대 60개에 10^18 이하의 양의 정수를 하나씩 붙여, 정점 v가 u의 조상일 때만 x_v가 x_u를 나누게 하는 문제입니다.
난이도

어려움10점 중 8점

유형
정수론, 트리, DFS
정답자
아직 제출이 없습니다

문제

아이바르(Aivar)는 수론을 아주 잘한다. 사실 그가 잘하는 것은 이것 하나뿐이지만, 그렇다고 큰일을 이루지 못하는 것은 아니다. 다만 아이바르가 인생의 어떤 문제든 풀고 싶다면, 먼저 그 문제를 수론 문제로 바꿔야 한다.

예를 들어 NN개의 정점을 가진 루트 트리를 생각해 보자. 이런 구조를 다루기 위해 아이바르는 먼저 트리의 약수 라벨링을 만든다. 정점 vv가 uu의 조상일 때에만 xvx_v가 xux_u의 약수가 되도록, 각 정점 vv에 양의 정수 xvx_v를 붙이는 것이 약수 라벨링이다.

약수 라벨링을 만든 뒤에는 아이바르가 트리를 잊어버려도 되고, 수열 x1,x2,…,xNx_1, x_2, \dots, x_N만 생각하면 된다.

NN개의 정점을 가진 루트 트리가 주어진다. 약수 라벨링을 구하라. 정점은 1부터 NN까지 번호가 매겨져 있고, 1번 정점이 루트이다.

입력

첫 줄에 정수 NN(1≤N≤601 \le N \le 60)이 주어진다.

이후 N−1N-1개의 줄에 각각 두 정수 uu, vv(1≤u,v≤N1 \le u, v \le N, u≠vu \ne v)가 주어진다. 이는 정점 uu와 vv 사이에 간선이 있다는 뜻이다. 이 간선들은 트리를 이룬다.

출력

한 줄에 정수 x1,x2,…,xNx_1, x_2, \dots, x_N을 공백으로 구분하여 출력한다. 이 수들은 1≤xi≤10181 \le x_i \le 10^{18}을 만족해야 한다. 이 조건에서 답이 항상 존재함이 증명되어 있다.

예제1

  1. 예제 1

    입력
    5
    1 2
    1 3
    3 4
    3 5
    
    예상 출력
    1 2 3 21 33