만드는 중입니다

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

트리 만들기

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

요약
n개의 노드로 이루어지고 정확히 m개의 리프를 가지는 트리 중 간선 목록이 사전순으로 가장 앞서는 트리를 만들어 n-1개의 간선을 출력한다.
난이도

보통10점 중 4점

유형
트리, 그리디, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

nn과 mm이 주어진다. 노드가 nn개이고 리프가 정확히 mm개인 트리를 하나 만들어 출력한다.

트리는 사이클이 없는 연결 그래프이고, 리프는 차수가 11인 노드이다. 노드 번호는 00번부터 n−1n-1번까지이다.

조건을 만족하는 트리는 여러 개일 수 있다. 그중에서 간선 목록이 사전순으로 가장 앞서는 트리를 출력한다. 간선 목록은 이렇게 만든다. 간선마다 두 끝점 중 번호가 작은 쪽을 앞에 두어 u vu\ v (u<vu < v)로 적고, 간선 n−1n-1개를 uu가 작은 순서로, uu가 같으면 vv가 작은 순서로 늘어놓는다. 이 목록을 정수 2(n−1)2(n-1)개짜리 수열로 보고 사전순으로 비교한다.

주어진 제한에서는 조건을 만족하는 트리가 항상 존재한다.

입력

첫째 줄에 nn과 mm이 공백으로 구분되어 주어진다. (3≤n≤503 \le n \le 50, 2≤m≤n−12 \le m \le n-1)

출력

n−1n-1개의 줄에 트리의 간선을 위에서 정한 순서대로 한 줄에 하나씩 출력한다. 각 줄에는 간선의 두 끝점을 번호가 작은 쪽부터 공백으로 구분해 출력한다.

예제4

  1. 예제 1

    입력
    4 2
    
    예상 출력
    0 1
    0 2
    1 3
    
  2. 예제 2

    입력
    4 3
    
    예상 출력
    0 1
    0 2
    0 3
    
  3. 예제 3

    입력
    3 2
    
    예상 출력
    0 1
    0 2
    
  4. 예제 4

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