시간 제한메모리 제한제출정답맞힌 사람정답 비율
1.5 초 1024 MB84252531.646%

문제

유적 탐색가 모집 공고문

유적이 우리 가족이 되었다. 화려했던 연세대학교를 기억하는가, 호화로운 신촌의 유적을 위에서 고고하게 내려다본다. 내 평생을 오래된, 찬란한 소문이 드리워진 집에 살았다. 부유를 먹고 살찌우며. 그럼에도 이 사치를 버리고자 한다. 하나의 불안한 이야기를 연세대학교가 전한다. 이곳은 어마어마하고 입에 담을 수 없는 힘으로 가는 길이라고. 유물과 의식이 있다면, 오래된 비밀을 밝혀내기 위해 온갖 노력을 했었지. 우리 학교의 남은 재산을 찾으려 모든 인부들과 튼튼한 삽을 꺼내 들었다.

이 모험은 적어도 성공을 약속해준다. 유적 안에 어딘가 보물이 숨겨져 있기를. 기도한다...

연세대학교는 신촌 근처에서 유적을 발견했다. 그 유적에 있는 유물과 보물의 값어치는 상당히 높기에 연세대학교에서 이를 찾아내려고 한다. 그 때문에 위의 이상한 공고문을 통해서 유적 탐색가를 모집하려고 한다.

유적은 $N$개의 방과 $(N-1)$개의 양방향 통로로 구성되어 있으며, 각 방은 $1$번부터 $N$번까지의 번호가 붙어있다. 그리고 유적 내의 서로 다른 두 방 사이에는 반드시 하나의 단순 경로가 존재하고, 그 단순 경로는 유일하다.

탐색가는 한 번의 탐색을 통해서 최대한 많은 방을 탐색하려고 한다. 그러나 유적의 통로에는 기어 다니는 괴물들이 서식하고 있고, 이들은 실제로 사람들을 공격하기 때문에 매우 위험하다. 따라서 통로를 지나가는 동안 괴물들이 싫어하는 횃불을 들고 다녀야 한다. 그러나 유적의 통로를 $K$번 통과하면 횃불이 꺼지기에 탐색가는 한 번의 탐색에서 $K$번 넘게 통로를 통과할 수 없다. 각 방과 통로의 방문 횟수는 따로 제한이 없지만, 같은 방을 두 번 이상 탐색하는 것은 한 번 탐색한 것으로 취급할 것이다.

탐색가는 원하는 방에서부터 탐색을 시작할 수 있고, 본인이 원할 때 탐색을 마치고 유적 밖으로 나갈 수 있다. 이때, 최대한 많은 방을 탐색할 수 있도록 유적을 탐색해보자.

입력

$N$과 $K$는 각각 방의 개수와 통로를 통과할 수 있는 횟수를 의미한다.

$u_i$와 $v_i$는 $u_i$번 방과 $v_i$번 방 사이에 통로가 있음을 의미한다. ($1 \le i \le N-1$)

$N$ $K$

$u_1$ $v_1$

$\cdots$

$u_{N-1}$ $v_{N-1}$

출력

첫 번째 줄에는 탐색할 수 있는 방 개수의 최댓값을 출력한다.

두 번째 줄에는 최대한 많은 방을 탐색할 수 있는 경로의 통로 통과 횟수 $L$을 출력한다. 단, $L$은 $K$를 넘을 수 없다.

세 번째 줄에는 탐색가가 탐색을 시작한 방의 번호를 출력한다.

네 번째 줄부터 $L$개의 줄에 걸쳐서 탐색한 방의 번호를 순차적으로 출력한다.

최대한 많은 방을 탐색할 수 있는 경로가 여러 개인 경우 아무거나 출력하면 된다.

제한

  • $3 \le N \le 500\,000$
  • $1 \le K \le 2(N-1)$
  • $1 \le u_i, v_i \le N$, $u_i \ne v_i$
  • 입력에 주어진 수들은 전부 정수다.

서브태스크

번호배점제한
140

$3 \le N \le 3\,000$

260

$3 \le N \le 500\,000$

예제 입력 1

3 1
1 2
2 3

예제 출력 1

2
1
1
2

예제 입력 2

4 2
1 2
1 3
1 4

예제 출력 2

3
2
2
1
3

출처

University > 연세대학교 > 2022 연세대학교 프로그래밍 경진대회 K번

채점 및 기타 정보

  • 예제는 채점하지 않는다.