Logo
(追記) (追記ここまで)

30466번 - 우정은 BFS처럼, 사랑은 DFS처럼 스페셜 저지

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB35321613164.216%

문제

1ドル$부터 $N$까지 번호가 매겨진 $N$개의 정점으로 이루어진 트리를 구하고자 한다. 1ドル$번 정점부터 깊이 우선 탐색과 너비 우선 탐색을 각각 시행했을 때, 다음과 같이 두 수열을 정의한다.

  • $d_i=$ 깊이 우선 탐색(DFS)에서 $i$번 정점을 방문한 순서
  • $b_i=$ 너비 우선 탐색(BFS)에서 $i$번 정점을 방문한 순서

두 번의 탐색에서 각 정점을 방문한 순서의 차이를 모두 더했을 때, 이 값을 최대로 하는 트리를 만들고자 한다. 즉, $\sum_{i=1}^{N}{|d_i-b_i|}$를 최대로 하는 트리를 만들어 보자. 순회 후보가 여럿인 경우에는 번호가 더 작은 정점을 먼저 방문한다.

입력

정점의 개수 $N$이 주어진다. $\left( 3\leq N\leq 200\ 000 \right)$

출력

첫째 줄에 두 순회에서 방문된 순서의 차이를 모두 더했을 때의 최댓값을 출력한다.

둘째 줄부터 $N-1$개의 줄에 걸쳐 간선으로 연결된 두 정점의 번호를 공백으로 구분하여 출력한다. 가능한 트리가 여러 가지라면 아무거나 출력한다.

제한

예제 입력 1

7

예제 출력 1

12
1 2
1 3
1 4
2 5
2 6
5 7

예제 입력 2

3

예제 출력 2

0
1 2
2 3

힌트

출처

University > 건국대학교 > 2023 건국대학교 프로그래밍 경진대회 (KUPC) > Division 1 I번

University > 건국대학교 > 2023 건국대학교 프로그래밍 경진대회 (KUPC) > Open Contest M번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /