시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 512 MB20151381.250%

문제

In a tournament with m teams, each team consisting of n players, construct a playing schedule so that each player is paired up against all players in all teams except their own. That is, each player should play (m − 1) · n games.

The playing schedule should be divided into rounds. A player can play at most one game per round. If a player does not play a game in a round, that player is said to have a bye in that round.

Your task is to write a program that constructs a playing schedule so that no player has a bye in more than 1 round. In other words, the total number of rounds in the playing schedule should be no more than (m − 1) · n + 1.

The order of the rounds and games, and who is home and away in a game, does not matter.

입력

The input consists of a single line with two integers n and m (1 ≤ n ≤ 25, 2 ≤ m ≤ 25, n · m ≤ 100), the number of players in a team and the total number of teams, respectively.

출력

Output one line per round in the playing schedule. Each line should contain a space separated list of games. A game is in the format “<player>-<player>”. The players in the first team are denoted as A1, A2, ..., An; the second team B1, B2, . . . Bn and so on.

예제 입력 1

3 2

예제 출력 1

A1-B2 B1-A2 A3-B3
A2-B3 B2-A3 A1-B1
A3-B1 B3-A1 A2-B2

예제 입력 2

2 3

예제 출력 2

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

1 5

예제 출력 3

B1-E1 C1-D1
C1-A1 D1-E1
D1-B1 E1-A1
E1-C1 A1-B1
A1-D1 B1-C1

출처

ICPC > Regionals > Europe > Northwestern European Regional Contest > Nordic Collegiate Programming Contest > NCPC 2018 G번

  • 문제를 만든 사람: Jimmy Mårdell