트리 이사
시간 제한1초메모리 제한1024 MB
트리의 모든 정점을 정수 격자에 옮기되 임의의 두 정점 사이의 맨해튼 거리가 트리 거리와 같아지도록 하는 최소 차원과 좌표를 구한다.
문제
정점 개와 간선 개로 이루어진 트리 가 주어진다. 정점은 번부터 번까지 번호가 매겨져 있고, 간선은 번부터 번까지 번호가 매겨져 있다.
의 모든 정점을 차원 정수 격자 위의 점으로 이사시키고자 한다. 이때, 이사된 정점들의 위치는 다음 조건을 만족해야 한다.
- 번 정점이 이사된 위치를 라 하자. 는 정수이다.
- 트리에서 번 정점과 번 정점의 거리 를 번 정점에서 번 정점으로 가는 경로에 있는 간선의 수로 정의하자.
- 모든 에 대해서 여야 한다.
트리를 이사할 수 있는 최소 차원 를 구하고, 조건을 만족하도록 정점들을 이사시키자.
입력
첫째 줄에 트리의 정점 수 이 주어진다. ()
이후 개의 줄에 걸쳐, 그중 번째 줄에는 트리의 번 간선이 잇는 두 정점 번호가 공백으로 구분되어 주어진다.
출력
첫째 줄에 트리를 이사할 수 있는 최소 차원 를 출력한다.
이후 개의 줄에 걸쳐, 그중 번째 줄에 개의 정수 를 공백으로 구분해 출력한다. ()
는 번 정점이 이사되는 격자점의 번째 좌표를 의미하며 이어야 한다.
트리를 여러 방법으로 이사시킬 수 있는 경우 그중 아무 것이나 출력한다.