最近,小Z迷上了一款新型消除游戏。这款游戏在一个
给定三个参数
, ,其中 ,即 对应于方格中的一个合法位置; ,其中 ,即 与 是方格中相邻的两个位置; 或 ,其中 ,即路径不能经过重复的格子; ,其中 ,即路径不能经过空白的格子; ,即路径不能以数字 为起点; ,即路径的长度需要在给定的范围内。
将路径上的数字串成一个整数
游戏会给出两个参数
- 如果数
是质数,那么将获得质数得分 ,否则获得质数得分 。 - 如果数
是回文数(即,将数 的十进制表达看成一个字符串,这个字符串的逆序串和它本身完全相同),那么将获得回文数得分 ,否则获得回文数得分 。 - 如果质数得分和回文数得分均为
,那么本次操作的得分为 ;否则本次操作的得分为质数得分与回文数得分之和。
每次操作过后,若该次操作的得分等于
- 执行
,其中 。 - 枚举所有格子。如果存在某个格子
,满足 ,执行 。反复执行这个操作直到方格中不再存在这样的格子。
我们还会给你一个参数
其中
小Z沉迷于这个有趣的游戏中不能自拔。她想请你帮助, 针对给定的输入参数,给出游戏局面的操作方案。当然,最终得分越大越好。
输入格式
所有输入数据game1.in ~ game10.in见数据下载。 输入的第1行包含8个用空格分隔的整数
随后
输入文件中不会包含多余的空行,行末不会存在多余的空格。
输出格式
针对给定的
输出文件第1行为一个整数
随后, 输出文件还应包含
输出文件中不应包含多余的空格和空行。一行的多个整数之间使用一个空格分隔。
样例一
input
3 3 100 2 3 1 1 0 2 1 1 2 3 3 4 7 1
output
4 2 2 2 3 2 2 3 1 3 2 2 2 1 3 1 3 1 3 2 3 3 3
explanation
4次消除得到的数与相应的分数分别是:37,得分为2+1=3;41,得分为2+1=3;22,得分为1+2=3;131,得分为3+3=6。总共得分为15。可能存在更优的方案。
样例二
input
1 3 100 2 3 1 1 1 2 1 1
output
1 2 1 2 1 3
explanation
本方案仅一次消除操作。消除的数为11,本次操作得分为2+2=4。由于F=1,最终得分为每次操作得分之和4除以
评分方式
对于每组数据,我们设置了
得分 | 条件 | 得分 | 条件 |
---|---|---|---|
10 | 5 | ||
9 | 4 | ||
8 | 3 | ||
7 | 2 | ||
6 | 1 |
如何测试你的输出
在终端中先切换到该试题的目录下:(windows用户请使用cmd)
cd game
我们提供checker这个工具来测试你的输出文件是否是可接受的。使用这个工具的方法是,在终端中运行
./checker_linux64 <case_no>
其中case_no
是测试数据的编号。例如
./checker_linux64 3
将测试game3.out是否可以接受。(windows用户请使用checker_win32 3
)(什么你是windows 64位?放心吧可以运行win32应用程序的。)
当然我们有对应的linux 32位版本:checker_linux32
。如果linux用户发现无法运行程序,请尝试执行chmod +x checker_linux64
或chmod +x checker_linux32
后重试。
其它操作系统请安装 node.js 然后使用 node checker.js <case_no>
运行checker。
在你调用这个程序后,checker将根据你给出的输出文件给出测试的结果。