#1844. 【提高】循环赛日程表

【提高】循环赛日程表

题目描述

设有 n=2kn = 2^k 个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表:

  1. 每个选手必须与其他 n1n-1 个选手各赛一次;
  2. 每个选手一天只能参赛一次;
  3. 循环赛在 n1n-1 天内结束。

请按此要求将比赛日程表设计成有 nn 行和 n1n-1 列的一个表。在表中的第 ii 行,第 jj 列处填入第 ii 个选手在第 jj 天所遇到的选手,其中 1in1 \le i \le n1jn11 \le j \le n-1

例如,88 个选手的比赛日程表如下:

输入格式

一个整数 kkk5k \le 5)。

输出格式

输出 nn 行(n=2kn = 2^k),每行 n1n-1 个整数,表示比赛日程表。相邻两个整数之间用一个空格隔开。

输入样例

3

输出样例

1 2 3 4 5 6 7
2 1 4 3 6 5 8
3 4 1 2 7 8 5
4 3 2 1 8 7 6
5 6 7 8 1 2 3
6 5 8 7 2 1 4
7 8 5 6 3 4 1
8 7 6 5 4 3 2

提示

  • k5k \le 5,即 n32n \le 32
  • 注意:输出为 nnn1n-1 列,不需要输出选手自己对自己比赛的列。