Problem2352--八数码

2352: 八数码

Time Limit: 1.000 Sec  Memory Limit: 128 MB
Submit: 10  Solved: 7
[Submit] [Status] [Web Board] [Creator:][下载测试数据]

Description

15 拼图游戏已经存在了 100 多年;即使你不知道它的名字,你也一定见过它。它由 15 块滑动方块组成,每块方块上都标有从 1 到 15 的数字,所有方块都塞进一个 4x4 的方框里,但缺少一块方块。我们把缺少的方块称为“x”;游戏的目标是将这些方块按以下顺序排列:
1 2 3 4  
5 6 7 8  
9 10 11 12  
13 14 15 x 

其中唯一合法的操作是将“x”与与其共享边的其中一个图块交换。例如,以下移动序列解决了一个略显混乱的谜题:
1 2 3 4       1 2 3 4      1 2 3 4     1 2 3 4 
5 6 7 8       5 6 7 8      5 6 7 8     5 6 7 8  
9 x 10 12    9 10 x 12     9 10 11 12    9 10 11 12  
13 14 11 15    13 14 11 15   13 14 x 15    13 14 15 x   
         r->         d->     r-> 
上一行中的字母表示每一步中哪个“x”牌的相邻牌与“x”牌交换;合法值分别为“r”、“l”、“u”和“d”,分别代表右、左、上、下。
并非所有谜题都能解开;1870 年,一个名叫 Sam Loyd 的人因散布一个无法解决的谜题版本而闻名,并
让很多人感到沮丧。事实上,要让一个普通谜题变成无法解决的谜题,你只需要交换两个牌(当然不包括丢失的“x”牌)。
在这个问题中,你将编写一个程序来解决不太为人所知的 8 字谜,它由三乘三排列的牌组成

Input

您将收到几份关于 8 拼图配置的描述。其中一份描述只是方块在其初始位置的列表,行从上到下排列,方块在一行内从左到右排列,其中方块用 1 到 8 的数字加上“x”表示。例如,这个

1 2 3
x 4 6
7 5 8拼图

的描述如下:

1 2 3 x 4 6 7 5 8

Output

如果谜题无解,则标准输出会打印单词“unsolvable”,否则打印一个完全由字母“r”、“l”、“u”和“d”组成的字符串,该字符串描述了一系列产生解的移动。该字符串不应包含空格,并从行首开始。请勿在大小写之间打印空行。

Sample Input

2 3 4 1 5 x 7 6 8

Sample Output

ullddrurdllurdruldr

Source/Category

 

[Submit] [Status]