7个谜题由8个正方形卡片和它们全部容纳的正方形卡片组成。为了能够将各个卡片分别区分开来,0、1、2…上面写着7和号码。在边框上,你可以将两张卡竖着排列,每张4张卡。
当你开始解谜7时,将所有卡片都放在框框里。只有0个框框可以与上下左右相邻的卡交换位置。例如,如果框的状态在图(a)时,与邻接0卡的右侧的7卡交换位置,成为图(b)的状态。或者,如果与图2a所示的状态0的卡下相邻的两张卡交换位置的话,将进入图2c所示的状态。由于在图(a)的状态下与0卡相邻的只有7和2卡,因此不允许更换以外的位置。
游戏的目的是将卡片整齐排列成图(d)的状态。请以最初的状态作为输入,在卡整齐排列之前制作输出必要的最小手数的程序。但是,可以将卡的状态从输入卡的状态移至图d的状态。
输入数据,1行有8个数字空白。这些是表示最开始状态的卡的排列。例如,图(a)中的数字表示为0 7 3 4 5 5 1 6,图(c)为2 7 3 4 0 5 1 6。
在图(a)中0 73,2 51 6的情况下图(b)中7 0 3,4 5 1 6的情况
图2c在2273,051,6的情况下图(d) 0 1 2 3 4 5 6 7(最终状态)
input
以上述形式提供了多个谜题。请处理到输入的最后。给出的谜题数量在1000以下。
output
请针对每个谜题输出将处理至最终状态的最小量值一行。
sample input
0 1 2 3 4 5 6 7
1 0 2 3 4 5 6 7
7 6 5 4 3 1 0
出put for the Sample Input
0
1
28
思路:我们应该将0位置作为遍历对象,采用BFS方法解决,但是因为有很多例子要处理,所以要把结果