만드는 중입니다

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

선로를 지켜라

면접 대비

시간 제한2초메모리 제한512 MB

요약
정점 n+1개인 트리에서 제거했을 때 가장 많은 정점 쌍이 분리되는 정점을 찾고, 최선의 간선 하나를 추가해 남는 분리 쌍의 수를 최소로 만든다.
난이도

보통10점 중 7점

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

문제

아크마르와 이브마르가 전쟁 중이다. 당신은 전시의 아크마르 전역으로 보급품을 나르는 철도망을 책임지고 있다. 철도망은 여러 분기점에서 만나는 선로로 이루어진다. 한 분기점에서 만나는 선로 수에는 제한이 없지만, 두 분기점을 잇는 경로는 언제나 하나뿐이다. 어떤 분기점 사이에는 경로가 둘 이상 생기도록 선로를 더 놓자고 주장해 봤지만, 전시라 예산이 나오지 않았다.

그런데 이브마르에 심어 둔 이중간첩이 나쁜 소식을 가져왔다. 적의 첩보원이 한 달 안에 분기점 하나를 폭파할 계획이다. 어느 분기점인지는 모르지만, 적이 반드시 요충지를 노린다는 사실만은 확실하다. 요충지는 그 분기점을 없앴을 때 남은 분기점 쌍 가운데 경로가 사라지는 쌍이 가장 많아지는 분기점이다. 철도망을 다시 놓을 시간은 없으니, 지금 선로로 직접 이어져 있지 않은 두 분기점을 새 선로 하나로 잇는 것이 전부다. 적은 지금의 철도망을 보고 목표를 정했고, 새 선로를 놓아도 목표는 바뀌지 않는다.

경로가 사라지는 쌍의 수를 가장 적게 만드는 새 선로를 찾아라.

입력

첫 줄에 철도망의 선로 수 nn이 주어진다 (2≤n≤10 0002 \le n \le 10\,000). 다음 nn개의 줄에는 두 정수 i1i_1과 i2i_2가 주어지며, 분기점 i1i_1과 i2i_2가 선로로 이어져 있다는 뜻이다. 분기점 번호는 0부터 차례로 매겨지므로 철도망의 분기점은 모두 n+1n + 1개이고 번호는 0번부터 nn번까지이다. 모든 선로는 양방향이고, 같은 선로는 두 번 주어지지 않으며, 두 분기점을 잇는 경로는 정확히 하나뿐이다.

출력

두 정수 n1n_1과 n2n_2를 공백으로 구분해 출력한다. n1n_1은 적이 요충지를 파괴했을 때 경로가 사라지는 분기점 쌍의 수이고, n2n_2는 새 선로를 가장 잘 놓았을 때에도 경로가 사라진 채로 남는 쌍의 수이다. 요충지는 항상 하나뿐이다.

예제4

  1. 예제 1

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

    입력
    2
    2 1
    0 1
    
    예상 출력
    1 0
    
  3. 예제 3

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

    입력
    4
    0 1
    1 2
    2 3
    3 4
    
    예상 출력
    4 0