만드는 중입니다

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

잃어버린 순수

면접 대비

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

요약
트리가 주어질 때 모든 정점이 사이클에 속하도록 간선을 최소한으로 추가하고, 추가한 간선의 양 끝점을 출력합니다.
난이도

보통10점 중 5점

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

문제

NN개의 정점과 N−1N-1개의 간선으로 이루어진 트리가 있다. 각 정점은 1,2,⋯ ,N1,2,\cdots ,N번으로 번호가 매겨져 있다. 이 트리에 간선을 최소한으로 추가하여 모든 정점이 적어도 하나의 사이클에 포함되도록 만들어 보자. 단, 자기 자신을 잇는 간선은 추가할 수 없고, 완성된 그래프의 임의의 두 정점 사이에는 간선이 최대 한 개만 존재해야 한다.

모든 정점이 적어도 하나의 사이클에 포함되도록 하기 위해 추가해야 하는 간선의 최소 개수 MM과, 추가하는 각 간선이 잇는 두 정점의 번호를 구해 보자.

입력

첫째 줄에 정수 NN(3≤N≤100 0003\le N\le 100\,000)이 주어진다.

둘째 줄부터 N−1N-1개의 줄에 각 간선이 잇는 두 정점의 번호 u,vu,v(1≤u,v≤N;u≠v1\le u,v\le N;u\neq v)가 공백으로 구분되어 주어진다.

출력

첫째 줄에 추가해야 하는 간선의 최소 개수 MM을 출력한다.

둘째 줄부터 MM개의 줄에 추가한 각 간선이 잇는 두 정점의 번호 u,vu,v(1≤u,v≤N;u≠v1\le u,v\le N;u\neq v)를 공백으로 구분하여 출력한다.

가능한 정답이 여러 가지라면 아무 것이나 하나 출력한다.

예제2

  1. 예제 1

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

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