만드는 중입니다

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

섬 건너뛰기

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

요약
숨겨진 트리 모양의 바닷길 N-1개를 찾습니다. 질의 한 번에 정점 v에서 k번째로 가까운 섬을 받으며, 질의는 최대 L번 가능합니다.
난이도

어려움10점 중 8점

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

문제

JOI 왕국에는 11번부터 NN번까지 번호가 붙은 섬이 NN개 있다. 바다 경로는 11번부터 N−1N - 1번까지 번호가 붙은 N−1N - 1개가 있다. 바다 경로 jj(1≤j≤N−11 \le j \le N - 1)는 섬 AjA_j와 섬 BjB_j를 양방향으로 잇는다. 일부 바다 경로를 이용하면 어느 섬에서든 다른 모든 섬으로 이동할 수 있다.

Aoi는 JOI 왕국에서 여행을 계획하고 있지만 바다 경로를 알지 못한다. 그녀는 왕국의 시민인 Bitaro에게 다음과 같이 질문한다.

  1. Aoi가 Bitaro에게 정수 vv(1≤v≤N1 \le v \le N)와 정수 kk(1≤k≤N−11 \le k \le N - 1)를 말한다.
  2. Bitaro는 섬 vv를 제외한 N−1N - 1개의 섬 가운데 섬 vv에서 kk번째로 가까운 섬의 번호를 Aoi에게 알려 준다. 구체적으로, dist(v,i)×N+i\text{dist}(v, i) \times N + i(1≤i≤N1 \le i \le N, i≠vi \ne v)의 값이 kk번째로 작아지는 정수 ii를 알려 준다. 여기서 dist(v,i)\text{dist}(v, i)는 섬 vv에서 섬 ii까지 이동할 때 거쳐야 하는 바다 경로의 최소 개수이다.

Aoi는 질문을 던져 모든 바다 경로를 알아내려 한다. 질문은 최대 LL번까지 할 수 있다.

NN과 LL이 주어졌을 때, Aoi의 전략을 구현하여 모든 바다 경로를 찾는 프로그램을 작성하라.

제한

  • 3≤N≤3003 \le N \le 300.
  • 1≤Aj≤N1 \le A_j \le N(1≤j≤N−11 \le j \le N - 1).
  • 1≤Bj≤N1 \le B_j \le N(1≤j≤N−11 \le j \le N - 1).
  • Aj≠BjA_j \ne B_j(1≤j≤N−11 \le j \le N - 1).
  • 일부 바다 경로를 이용하면 어느 섬에서든 다른 모든 섬으로 이동할 수 있다.
  • 주어지는 값은 모두 정수이다.

예제1

  1. 예제 1

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