伊格和公主我
时间限制:2000/1000 MS(JAVA /其他)内存限制:三万二千七百六十八分之六万五千五百三十六K(Java /其他的)
共有意见书(S):4030接受提交的意见书(S):1247
特别法官
问题描述
魔王feng5166被绑架的公主,我们的英雄伊格拯救我们的漂亮的公主。现在,他进入feng5166的城堡。该城堡是一个大迷宫。为了使问题简单地说,我们假设迷宫是一个N * M个二维数组的左上角为(0,0),右下角是(N - 1 M - 1)。伊格在(0,0)进入,并feng5166的房间门是(N - 1 M - 1),这是我们的目标。在城堡有一些怪物,如果伊格满足他们,他要杀死他们。下面是一些规则:
1.Ignatius只能在四个方向移动(上,下,左,右),每秒的一个步骤。一个步骤是定义如下:如果当前的位置是(X,Y),一步后,伊格只能站在(X - 1,Y)(X +1,Y),(X,Y - 1)或(X,Y +1)。
2,数组是标有一些字符和数字。我们可以这样定义它们:
。 :伊格可以步行。
X:这个地方是一个陷阱,伊格不应该走就可以了。
N:这是一个具有n个HP的怪物(1 <= N <= 9),如果伊格步行就可以了,需要他的n秒内杀死怪物。
你的任务是给的路径,成本最低伊格秒内达到目标位置。你可以假设的起始位置和目标位置,绝不会是一个陷阱,绝不会有一个怪物的开始位置。
输入
输入包含多个测试用例。每个测试案例开始与某行包含两个数字N和M(2 <= N <= 100,2 <= M <= 100)表示迷宫的大小。然后一个N * M个二维数组,这说明整个迷宫。输入文件的末尾终止。在样品输入更多细节。
输出
对于每个测试用例,你应该输出“上帝,请帮助我们可怜的英雄。”如果伊格无法达到目标位置,或者你应该输出“n秒达到目标位置,让我告诉你的方式”(n是最低秒),并告诉我们的英雄的整个路径。输出行包含每个测试案例后的“完成”。如果有多个路径,任何人在这个问题上确定的。样本输出的更多细节。
样例输入
5月6日
XX.1。
..十.2。
2 ... ... X。
... ...二十。
XXXXX。
5月6日
XX.1。
..十.2。
2 ... ... X。
... ...二十。
XXXXX1
5月6日
。XX ... ...
.. XX1。
2 ... ... X。
... ...二十。
XXXXX。
输出范例
它需要13秒达到目标位置,让我告诉你的方式。