考虑一个拥有 9 个寄存器(编号为 $1 \dots 9$)的双操作机(简称 TOM)。每个寄存器存储一个范围在 $0 \dots 1000$ 内的非负整数。该机器有两种操作:
| 操作 | 描述 |
|---|---|
S i j |
将寄存器 $i$ 的值加 1 存入寄存器 $j$。注意 $i$ 可以等于 $j$。 |
P i |
打印寄存器 $i$ 的值。 |
一个 TOM 程序包含一组寄存器的初始值以及一系列操作。给定一个整数 $N$ ($0 \le N \le 255$),生成一个 TOM 程序,该程序打印递减的整数序列 $N, N-1, N-2, \dots, 0$。程序中连续 S 操作的最大数量应尽可能小。
例如,当 $N=2$ 时,一个 TOM 程序及其执行过程如下:
| 操作 | 寄存器新值 (1...9) | 打印的值 |
|---|---|---|
| 初始值 | 0 2 0 0 0 0 0 0 0 |
|
P 2 |
0 2 0 0 0 0 0 0 0 |
2 |
S 1 3 |
0 2 1 0 0 0 0 0 0 |
|
P 3 |
0 2 1 0 0 0 0 0 0 |
1 |
P 1 |
0 2 1 0 0 0 0 0 0 |
0 |
输入测试点编号为 1 到 16,可通过比赛服务器获取。
输入格式
- 输入的第一行包含一个整数 $K$,表示输入测试点编号。
- 输入的第二行包含 $N$。
输出格式
输出的第一行应为字符串 FILE reverse K,其中 K 是测试点编号。
输出的第二行应包含 9 个由空格分隔的数值,按顺序表示寄存器的初始值(寄存器 1,然后是寄存器 2,依此类推)。
输出文件的其余部分应包含要执行的操作的有序列表,每行一个。因此,第三行包含要执行的第一步操作,依此类推。最后一行应该是打印 0 的操作。每行都必须是一个有效的操作。指令的格式应与样例输出一致。
样例
输入样例 1
1 2
输出样例 1
FILE reverse 1 0 2 0 0 0 0 0 0 0 P 2 S 1 3 P 3 P 1
说明 1
此输出为部分分答案。
输出样例 2
FILE reverse 1 0 2 1 0 0 0 0 0 0 P 2 P 3 P 1
说明 2
此输出为满分答案。
子任务
每个测试点的评分将基于所给 TOM 程序的正确性和最优性。
正确性:占 20% 如果一个 TOM 程序执行的连续
S操作不超过 131 次,且其打印的数值序列正确(恰好包含 $N+1$ 个整数,从 $N$ 开始到 $0$ 结束),则该程序是正确的。如果任何S操作导致寄存器溢出(即超过 1000),则该 TOM 程序被视为不正确。最优性:占 80% 一个正确的 TOM 程序的最优性是通过程序中连续
S操作的最大数量来衡量的,该数量应尽可能小。评分将基于你的 TOM 程序与已知最佳 TOM 程序之间的差异。