#P16187. [Ncpc2018]Game Scheduling比赛日程安排

[Ncpc2018]Game Scheduling比赛日程安排

题目描述

有一个锦标赛,共有 mm 支队伍,每支队伍有 nn 名选手。请构造一个比赛日程,使得每名选手都要和 所有其它队伍 中的所有选手各比赛一次,但不需要和自己队伍中的选手比赛。

也就是说,每名选手需要参加:

(m1)n(m-1)n

场比赛。

日程被划分为若干轮。每一轮中,一名选手最多只能参加一场比赛。如果一名选手在某一轮没有比赛,则称该选手在这一轮轮空。

你的任务是构造一个日程,使得每名选手轮空的轮数不超过 11

换句话说,总轮数不能超过:

(m1)n+1.(m-1)n+1.

每轮的顺序、每轮中比赛的顺序,以及每场比赛中谁主谁客都不重要。

输入格式

输入一行两个整数 n,mn,m,分别表示每支队伍的选手数量和队伍总数。

满足:

$$1\le n\le 25, \qquad 2\le m\le 25, \qquad n\cdot m\le 100.$$

输出格式

按轮输出比赛日程,每轮一行。

每行应包含一个用空格分隔的比赛列表。每场比赛格式为:

<player>-<player>

第一支队伍的选手记作:

A1, A2, ..., An

第二支队伍的选手记作:

B1, B2, ..., Bn

依此类推。

只要输出的日程满足所有要求,即可通过。输出的轮数不得超过 (m1)n+1(m-1)n+1

输入输出样例 #1

输入 #1

3 2

输出 #1

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

输入输出样例 #2

输入 #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

输入 #3

1 5

输出 #3

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