轮回游戏

成绩 0 开启时间 2013年02月21日 星期四 23:02
折扣 0.8 折扣时间 2013年02月28日 星期四 23:02
允许迟交 关闭时间 2013年02月28日 星期四 23:02
输入文件 rotationa.in 输出文件 rotationa.out

【题目描述】

有一个#形棋盘,上面有24个格子(如下图)。这些格子上面有1,2,3三种数字,且每种数字有8个。一开始这些格子上的数字是随机分布的。你的任务是移动这些格子使得中间8个格子的数字相同。有8种移动方式,分别标记为A至H,可以理解为拉动4条链,如图的变换为‘AC’。问至少需要多少次拉动,才能从初始状态到达目标状态?
若有多组解,则输出字典序最小的那个。保证数据有解。


【输入】

有多组数据。每组数据包含一行,24个数字。从上至下从左至右表示棋盘上的数字。以0结束数据。

【输出】

每组数据包含两行,第一行为最优移动的序列,如果不用移动,则输出‘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