转动游戏

提交数: 58, 通过率: 20.69%, 平均分: 34.6

题目描述:

如下图所示,有一个“#”形的棋盘,上面有1,2,3三种数字各8个。给定8种操作,分别为图中A~H。这些操作会按照图中字母和箭头所指明的方向,把一条长为8的序列循环移动1个单位。

给你一个游戏初始状态(从上到下,从左到右顺序给出),其中包含两个横轴,两个竖轴,你可以进行向上转,向下转,向左转,向右转共8种操作(一次旋转一个横轴或竖轴),你的任务是找到一个最短的操作序列,使中间3*3的方格中只有一种数字(除了中央的那个空方格),如果有多个长度相等的序列,输出字典序最小的那个,如果不需要操作,输出"No moves needed"。然后还要输出中间区域的数字。

数据保证游戏中只有1,2,3这几个数字且每个出现8次。

1527137634831892576.png

输入格式:

输入一行1、2、3的24个数字,从上往下,从左到右依次给出。

样例1中的输入与上图中所示布局一致。

输出格式:

输出包含两行。

第一行是每一步移动的字母代表A到H,这些字母间没有空格,如果没有必要移动,那么输出“ No moves needed ”。

第二行输出经过移动操作后中间区域上的数字。

 

样例输入:

样例1:
1 1 1 1 3 2 3 2 3 1 3 2 2 3 1 2 2 2 3 1 2 1 3 3

样例2:
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3

样例输出:

样例1:
AC
2

样例2:
DDHH
2
时间限制: 1000ms
空间限制: 256MB