K 主席为训练营的参与者准备了一个游戏。
训练营中有 $N$ 名参与者,每人被分配了一个从 $1$ 到 $N$ 的唯一编号。每位参与者都有一块板子。游戏遵循以下步骤:
- K 主席选择一名参与者作为“家长”,而其他所有参与者成为“孩子”。然而,家长的身份不会向参与者透露。
- K 主席在家长的板子上写上字母 ‘T’,并在所有孩子的板子上写上字母 ‘F’。
- 每位参与者读取自己板子上的字母。然后,遵循预先定义的策略,他们进行为期 $L$ 个回合的轮次过程:
(1) 每位参与者擦除自己板子上的字母,并写上 ‘T’ 或 ‘F’。然后,他们将板子提交给 K 主席。
(2) 对于每位参与者 $i$ ($i = 1, 2, \dots, N$):
* 参与者 $i$ 选择一名参与者 $p$ ($1 \le p \le N$) 并将编号 $p$ 告知 K 主席。K 主席向参与者 $i$ 展示参与者 $p$ 的板子,参与者 $i$ 随后读取上面的字母。参与者允许选择自己作为 $p$。
- 在 $L$ 个回合后,每位参与者必须猜出谁是家长。
游戏的目标是预先建立一种策略,使得无论谁被选为家长,所有参与者都能在过程结束时正确识别出家长。
较小的 $L$ 值会带来更高的分数。你的目标是设计一种策略,在确保所有参与者都能在过程结束时正确识别出家长的同时,使 $L$ 最小化。
策略由一个非负整数 $L$(代表回合数)和一组决定每位参与者行动的规则组成。规则如下:
- 对于参与者 $i$ ($1 \le i \le N$),在第 $t$ 回合($1 \le t \le L$)开始时,如果他们到目前为止读取的字母序列为 $a_0, a_1, \dots, a_{t-1}$,那么仅根据此信息 $(i, t, a_0, a_1, \dots, a_{t-1})$,他们必须确定:
- 他们在第 $t$ 回合要在板子上写的字母。
- 他们在第 $t$ 回合选择观察的参与者编号。
- 对于参与者 $i$ ($1 \le i \le N$),在第 $L$ 回合之后,如果他们到目前为止读取的字母序列为 $a_0, a_1, \dots, a_L$,那么仅根据此信息 $(i, L, a_0, a_1, \dots, a_L)$,他们必须确定家长的参与者编号。
设计一种策略,使得所有参与者都能正确识别出家长,无论谁被选为家长。然后,对于每种可能的家长选择($1, 2, \dots, N$),按照既定策略,输出每位参与者在每一回合中在板子上写下的值以及他们选择观察的参与者。
输入格式
从标准输入读取以下数据:
$N$
输出格式
按以下格式打印输出:
$L$ $acts_1$ $acts_2$ $\vdots$ $acts_N$
这里,$acts_s$ 表示当参与者 $s$ 为家长时,每位参与者采取的行动序列。$acts_s$ 的格式如下:
首先,打印整数 $s$。对于每位参与者 $i$ ($1 \le i \le N$),打印一行,包含他们在 $L$ 个回合中采取的行动序列。每一行应包含以下值: 字符 $c_{i,t}$(‘T’ 或 ‘F’),即参与者在第 $t$ 回合写在板子上的内容。 参与者编号 $p_{i,t}$,即他们在第 $t$ 回合选择观察的对象。
这些值应按顺序为每个回合 $t$ ($1 \le t \le L$) 打印。因此,$acts_s$ 的输出格式为:
$s$ $c_{1,1} \ p_{1,1} \ c_{1,2} \ p_{1,2} \ \dots \ c_{1,L} \ p_{1,L}$ $c_{2,1} \ p_{2,1} \ c_{2,2} \ p_{2,2} \ \dots \ c_{2,L} \ p_{2,L}$ $\vdots$ $c_{N,1} \ p_{N,1} \ c_{N,2} \ p_{N,2} \ \dots \ c_{N,L} \ p_{N,L}$
实现细节
如果且仅当输出是参与者遵循确保所有人都能正确识别家长的有效策略的结果时,输出才被视为正确。具体而言,必须满足以下两个条件:
- 对于任何参与者 $i$ ($1 \le i \le N$)、回合 $t$ ($1 \le t \le L$) 以及任何两个不同的家长候选人 $x, y$ ($1 \le x, y \le N, x \neq y$):如果参与者 $i$ 在第 $t$ 回合之前读取的字母序列在 $x$ 为家长时与在 $y$ 为家长时相同,则参与者 $i$ 在第 $t$ 回合必须采取相同的行动(即写下相同的字母并选择相同的参与者)。
- 对于任何参与者 $i$ ($1 \le i \le N$) 以及任何两个不同的家长候选人 $x, y$ ($1 \le x, y \le N, x \neq y$):参与者 $i$ 在第 $L$ 回合结束时读取的字母序列,在 $x$ 为家长时必须与在 $y$ 为家长时不同。
数据范围
- $N$ 为 $4, 32$ 或 $48$ 中的一个。
子任务
| 子任务 | 输入文件 | $N$ | 得分 | 最大得分 |
|---|---|---|---|---|
| 1 | input_01.txt |
4 | $4 < L$ 时 0 分;$2 < L \le 4$ 时 $16 - 7 \times (L - 2)$ 分;$L \le 2$ 时 16 分 | 16 |
| 2 | input_02.txt |
32 | $27 < L$ 时 0 分;$8 < L \le 27$ 时 $60 - 3 \times (L - 8)$ 分;$L \le 8$ 时 60 分 | 60 |
| 3 | input_03.txt |
48 | $9 < L$ 时 0 分;$L \le 9$ 时 24 分 | 24 |
注意:如果你的得分为 0,评分系统会显示“Output isn’t correct”。
样例
样例输入 1
3
样例输出 1
3 1 T 1 T 2 T 3 F 1 F 2 F 3 F 1 F 2 F 3 2 F 1 F 2 F 3 T 1 T 2 T 3 F 1 F 2 F 3 3 F 1 F 2 F 3 F 1 F 2 F 3 T 1 T 2 T 3
说明
此输出示例可以作为参与者遵循以下策略的结果获得:
- 设定 $L = 3$。
- 在每个回合 $t$ ($1 \le t \le L$) 中,如果参与者 $i$ 是家长,则写 ‘T’;如果是孩子,则写 ‘F’。注意,他们根据初始步骤中看到的字符知道自己是家长还是孩子。
- 在每个回合 $t$ ($1 \le t \le L$) 中,无论到目前为止读取了什么字母,参与者 $i$ 都观察参与者 $t$。
- 到第 3 回合结束时,每位参与者至少读取过包括自己在内的每位参与者的板子一次。然后,每位参与者识别出板子上包含 ‘T’ 的参与者,并提交其编号作为家长。
这确保了每个人都能正确识别出家长,从而实现了游戏的目标。由于该策略成功地为任何选定的家长实现了游戏目标,因此该输出被认为是正确的。
注意,给出的示例不对应于实际的测试用例,因为它不满足给定的约束条件。