操练士兵

2014年1月4日1,0530

来源:http://218.5.5.242:9018/JudgeOnline/problem.php?id=1433

如图1,由8个方格构成的训练场,间隔为虚线的表示两方格相通,五个士兵编号分别为1……5,初始时,士兵被随机地排列在第二行的5个格子中。士兵可以越过虚线进入相邻的没有被其他士兵占据的格子中,每移动一格算一步。

编程:给定5个士兵的初始位置(如图1),计算出将士兵排列为目标状态(如图2)时最少的步数。

 

输入:给定5个士兵的初始位置。

输出:最优步数,若无解输出-1。
样例读入:
45678
41638
对应的输出为:

2

代码
如果不考虑士兵的顺序的话。。。

考虑顺序的话…