#iDAXINGlydlt20x2802. 回转游戏 Square Destroyer
回转游戏 Square Destroyer

题目描述
如下图所示,有一个 # 形的棋盘,上面有 三种数字各 个。
给定 种操作,分别为图中的 。
这些操作会按照图中字母和箭头所指明的方向,把一条长为 的序列循环移动 个单位。
例如下图最左边的 # 形棋盘执行操作 后,会变为下图中间的 # 形棋盘,再执行操作 后会变成下图最右边的 # 形棋盘。
给定一个初始状态,请使用最少的操作次数,使 # 形棋盘最中间的 个格子里的数字相同。
输入格式
输入包含多组测试用例。
每个测试用例占一行,包含 个数字,表示将初始棋盘中的每一个位置的数字,按整体从上到下,同行从左到右的顺序依次列出。
输入样例中的第一个测试用例,对应上图最左边棋盘的初始状态。
当输入只包含一个 的行时,表示输入终止。
输出格式
每个测试用例输出占两行。
第一行包含所有移动步骤,每步移动用大写字母 中的一个表示,字母之间没有空格,如果不需要移动则输出 No moves needed。
第二行包含一个整数,表示移动完成后,中间 个格子里的数字。
如果有多种方案,则输出字典序最小的解决方案。
样例
输入样例:
1 1 1 1 3 2 3 2 3 1 3 2 2 3 1 2 2 2 3 1 2 1 3 3
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3
0
输出样例:
AC
2
DDHH
2
样例解释
第一个测试用例:
初始棋盘状态(对应图中的最左边棋盘)需要操作 AC 才能让中间 8 格数字相同,操作完成后中间 8 格数字变为 。
第二个测试用例:
初始棋盘已经排好?实际上中间 8 格还不是全部相同,需要操作 DDHH 才能使中间 8 格数字相同(变为 )。
数据范围
- 每个测试用例输入 24 个数,每个数为 1、2 或 3。
- 多组测试,以
0结束。
时空限制
- 时间限制:1 秒
- 空间限制:64 MB