포럼
문제 COCI00078

Krtica

스페셜 저지 — 출력을 사용자 정의 프로그램으로 검사하므로 여러 정답이 인정될 수 있습니다.
설명

두더지는 깔끔하고 부지런한 동물이다. 우리의 두더지는 지하 저택을 최대한 잘 정돈해 두어, 그곳에 사는 모두가 물건이 어디 있는지 알 수 있게 하고 싶어 한다.
이를 위해 두더지는 방들을 굴로 연결하되, 어떤 방에서 다른 어떤 방으로든 가는 방법이 정확히 하나만 존재하게 했다. 두 방 사이의 거리는 한 방에서 다른 방으로 가는 길에 지나는 홀의 개수이다.
이 모든 노력에도 불구하고, 두더지의 손님 몇몇은 특정 방 쌍 사이를 걷는 데 시간이 너무 오래 걸린다고 불평한다.
두더지는 저택을 개조하기로 했다. 굴 하나를 닫고 새 굴 하나를 열어, 가장 먼 두 방 사이의 거리가 최소가 되게 하되, 여전히 모든 방에서 다른 모든 방으로 갈 수 있어야 한다.
개조 후 가장 먼 두 방 사이의 거리, 닫을 굴과 열 굴을 결정하는 프로그램을 작성하시오.

제약
입력 형식

첫째 줄에 방의 개수인 정수 \(N\) (\(1 \le N \le 300\,000\))이 주어진다. 방에는 \(1\)부터 \(N\)까지 번호가 붙어 있다.

다음 \(N-1\)개의 줄에는 두 정수, 즉 굴이 연결하는 방들의 번호가 주어진다.

출력 형식

다음을 순서대로 각각 다른 줄에 출력한다:

  • 개조 후 가장 먼 두 방 사이의 거리.
  • 닫아야 할, 기존에 존재하던 굴을 나타내는 정수 쌍.
  • 새 굴을 열어야 할 두 방을 나타내는 정수 쌍.

참고: 해는 유일하지 않을 수 있다. 가장 먼 두 방 사이의 거리가 최소가 되는 개조 계획이면 무엇이든 출력해도 된다.

채점: 전체 점수의 \(40\%\)에 해당하는 테스트 케이스에서는 \(N\)\(30\)보다 작다. 전체 점수의 \(70\%\)에 해당하는 테스트 케이스에서는 \(N\)\(3000\)보다 작다. 또한 출력의 첫째 줄이 올바르고 나머지 두 줄이 없거나 틀렸으면, 해당 테스트 케이스 배점의 약 \(70\%\)를 받는다.

서브태스크
서브태스크점수설명

Subtask 1

56점

\(N < 30\)

Subtask 2

42점

\(N < 3000\)

Subtask 3

42점

No additional constraints (\(N \le 300\,000\)).

예제 1
입력
4
1 2
2 3
3 4
출력
2
3 4
4 2
예제 2
입력
7
1 3
2 3
2 7
4 3
7 5
3 6
출력
3
2 3
7 3
문제 정보

riseoj 작성

출처 COCI 2008/2009 Contest 1

평가 및 의견

Krtica

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Krtica

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8