약수가 가득한 트리
시간 제한1초메모리 제한1024 MB
루트가 있는 트리의 정점 최대 60개에 10^18 이하의 양의 정수를 하나씩 붙여, 정점 v가 u의 조상일 때만 x_v가 x_u를 나누게 하는 문제입니다.
문제
아이바르(Aivar)는 수론을 아주 잘한다. 사실 그가 잘하는 것은 이것 하나뿐이지만, 그렇다고 큰일을 이루지 못하는 것은 아니다. 다만 아이바르가 인생의 어떤 문제든 풀고 싶다면, 먼저 그 문제를 수론 문제로 바꿔야 한다.
예를 들어 개의 정점을 가진 루트 트리를 생각해 보자. 이런 구조를 다루기 위해 아이바르는 먼저 트리의 약수 라벨링을 만든다. 정점 가 의 조상일 때에만 가 의 약수가 되도록, 각 정점 에 양의 정수 를 붙이는 것이 약수 라벨링이다.
약수 라벨링을 만든 뒤에는 아이바르가 트리를 잊어버려도 되고, 수열 만 생각하면 된다.
개의 정점을 가진 루트 트리가 주어진다. 약수 라벨링을 구하라. 정점은 1부터 까지 번호가 매겨져 있고, 1번 정점이 루트이다.
입력
첫 줄에 정수 ()이 주어진다.
이후 개의 줄에 각각 두 정수 , (, )가 주어진다. 이는 정점 와 사이에 간선이 있다는 뜻이다. 이 간선들은 트리를 이룬다.
출력
한 줄에 정수 을 공백으로 구분하여 출력한다. 이 수들은 을 만족해야 한다. 이 조건에서 답이 항상 존재함이 증명되어 있다.