만드는 중입니다

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

게임 일정 작성

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

요약
팀당 n명, 팀 m개가 주어질 때 각 선수가 자기 팀을 제외한 모든 선수와 한 번씩 경기하고 쉬는 라운드가 최대 한 번이 되도록 일정을 구성합니다.
난이도

어려움10점 중 8점

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

문제

mm개 팀이 참가하는 토너먼트에서 각 팀은 nn명의 선수로 구성된다. 각 선수가 자기 팀을 제외한 모든 팀의 모든 선수와 한 경기씩 하도록 경기 일정을 작성하시오. 즉, 각 선수는 (m−1)n(m-1)n경기를 치러야 한다.

경기 일정은 라운드로 나뉜다. 한 선수는 한 라운드에 최대 한 경기만 할 수 있다. 어떤 라운드에서 경기를 하지 않는 선수는 그 라운드를 쉰다고 한다.

어떤 선수도 1개보다 많은 라운드를 쉬지 않도록 경기 일정을 작성하는 프로그램을 작성하시오. 다시 말해, 전체 라운드 수는 (m−1)n+1(m-1)n+1 이하여야 한다.

라운드와 경기의 순서, 그리고 각 경기에서 누가 홈이고 누가 원정인지는 상관없다.

입력

입력은 한 줄로 이루어지며, 팀당 선수 수 nn과 전체 팀 수 mm이 차례로 주어진다 (1≤n≤251 \le n \le 25, 2≤m≤252 \le m \le 25, n×m≤100n \times m \le 100).

출력

경기 일정의 각 라운드마다 한 줄을 출력한다. 각 줄에는 공백으로 구분한 경기 목록을 쓴다. 경기는 <player>-<player> 형식으로 쓴다. 첫 번째 팀의 선수는 A1, A2, ..., An, 두 번째 팀의 선수는 B1, B2, ..., Bn으로 나타내며, 이와 같은 방식으로 이어진다.

예제3

  1. 예제 1

    입력
    3 2
    
    예상 출력
    A1-B2 B1-A2 A3-B3
    A2-B3 B2-A3 A1-B1
    A3-B1 B3-A1 A2-B2
    
  2. 예제 2

    입력
    2 3
    
    예상 출력
    A1-B1 A2-C2 B2-C1
    A1-C1 A2-B1 B2-C2
    A1-B2 A2-C1 B1-C2
    A1-C2 A2-B2 B1-C1
    
  3. 예제 3

    입력
    1 5
    
    예상 출력
    B1-E1 C1-D1
    C1-A1 D1-E1
    D1-B1 E1-A1
    E1-C1 A1-B1
    A1-D1 B1-C1