아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

△

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

요약
N개의 정점에 번호가 붙은 트리 중 모든 정점 쌍 거리의 합을 최소로 하는 트리를 찾아, 최솟값과 그러한 트리 하나를 출력한다.
난이도

보통10점 중 5점

유형
그래프, 그리디, 트리, 수학
정답자
아직 제출이 없습니다

문제

NN개의 정점으로 이루어진 트리의 모든 정점 쌍에 대하여, 두 정점 사이의 거리의 합을 최소화하시오. 정점에는 11부터 NN까지 번호가 매겨져 있다.

즉, 정점 ii와 정점 jj 사이의 거리를 dist(i,,j)\textrm {dist}(i,\\, j)라 할 때 ∑_1≤i<j≤Ndist(i,,j)\sum\_{1 \leq i < j \leq N}^{} \textrm {dist}(i,\\, j)가 최소인 트리를 구성해야 한다.

입력

첫째 줄에 정점의 개수 NN이 주어진다. (2≤N≤100,000)(2\leq N \leq 100\\,000)

출력

첫째 줄에 모든 정점 쌍에 대하여 두 정점 사이 거리의 합의 최솟값을 출력한다.

둘째 줄부터 N−1N-1개의 줄에 걸쳐, 트리를 이루는 간선의 정보를 출력한다. 각 줄에 간선이 연결하는 두 정점의 번호를 공백을 사이에 두고 출력한다.

조건을 만족하는 트리가 여럿이라면 아무거나 하나 출력한다.

예제1

  1. 예제 1

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