问题2585--骑士问题

2585: 骑士问题

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 64 MB

题目描述

在一个标准8*8的国际象棋棋盘上,棋盘中有些格子可能是有障碍物的。已知骑士的初始位置和目标位置,你的任务是计算出骑士最少需要多少步可以从初始位置到达目标位置。 有障碍物的格子当然不可以到达。 标准的8*8的国际象棋棋盘中每个格子可以用唯一的编号确定。行用1~8这8个数字一次表示,列用a~h这8个字母依次表示如a4,b5等。骑士走日字型。

输入

多组测试数据。 每个测试数据的第一行是一个整数b( -1 <= b <= 62)表示棋盘中有障碍物的格子的数目,当b=-1时表示输入结束。 第二行含b个不同的有障碍物的格子编号,用空格隔开,当b=0时,此行为空行。 第三行是骑士的初始格子和目标格子的编号,也用空格隔开。

输出

每组输出一行格式: Board n: m moves 其中n表示数据的序号,m表示最少步数 如果骑士无法到达,则输出 Board n: not reachable

样例输入 Copy

10
c1 d1 d5 c2 c3 c4 d2 d3 d4 c5
a1 f1
0

c1 b3
2
b3 c2
a1 b2
-1

样例输出 Copy

Board 1: 7 moves
Board 2: 1 moves
Board 3: not reachable

来源/分类

yhr