Binarytreefication

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

요약
노드 N개짜리 트리가 주어질 때, 거리가 같으면 원래 트리에서도 거리가 같도록 하는 이진 트리를 노드 22000개 이하로 만들어 출력한다.
난이도

어려움10점 중 8점

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

문제

N≤2,000N \le 2\\,000을 만족하는 노드 NN개의 트리 TT가 주어진다. 다음의 조건을 만족하는 트리 T′T'를 구성하여 출력하자.

  • T′T'의 크기를 MM이라 하자. MM은 NN 이상 22,00022\\,000 이하여야 한다. 즉, N≤M≤22,000N \le M \le 22\\,000이여야 한다.
  • T′T'은 이진 트리이여야 한다. 즉, T′T'의 모든 노드는 33개 이하의 다른 노드들과 연결되어야 한다.
  • dist(u,v)\text{dist}(u, v)를 TT에서 uu번 노드와 vv번 노드 사이의 거리로 정의하자. 비슷하게, T′T'에 대해서 dist′(u,v)\text{dist}'(u, v)를 uu번 노드와 vv번 노드의 거리로 정의하자.
  • 1≤u,v,p,q≤N1 \le u, v, p, q \le N에 대해 dist′(u,v)=dist′(p,q)\text{dist}'(u, v) = \text{dist}'(p, q)이면 dist(u,v)=dist(p,q)\text{dist}(u, v) = \text{dist}(p, q)이여야 한다.

입력

첫째 줄에 NN이 주어진다.

둘째 줄부터 N−1N-1개의 줄에 걸쳐 TT의 각 간선의 양 끝점의 번호가 한 줄에 공백으로 구분되어 주어진다.

출력

첫째 줄에 MM을 출력한다.

둘째 줄부터 M−1M-1개의 줄에 걸쳐 T′T'의 각 간선의 양 끝점의 번호를 한 줄에 공백으로 구분하여 출력한다.

제한

  • 2≤N≤2,0002 \le N \le 2\\,000

힌트

트리는 임의의 두 정점 사이의 단순 경로가 유일하게 존재하는 연결 그래프를 말한다.

예제1

  1. 예제 1

    입력
    6
    1 2
    2 3
    3 4
    3 5
    3 6
    
    예상 출력
    10
    4 1
    1 7
    7 2
    2 8
    8 3
    3 9
    9 5
    3 10
    10 6