:i P1019 - 勇者 - 铁一启智tyqzOJ

1019: 勇者

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:39 解决:4

题目描述

一名勇者希望前去斩杀恶龙,路上可能会遇到恶龙麾下的敌怪。

勇者可以向上、下、左、右四个方向的道路移动,每移动一格需要1个单位时间,杀死一个敌怪需要花费额外的1个单位时间(勇者在玄学力量的加持下,有能力斩杀所有的敌怪,同时用时必定为1个单位时间)。

与玄学的力量相应的代价是,勇者的生命需要时刻与天空维持联系,即勇者不能从有树的地方走过

给出山间地图以及勇者、恶龙和敌怪的位置,请你计算勇者从起点出发见到恶龙的最少用时(注意是见到恶龙,即到达恶龙的位置,而不是到达后花费$1$个单位时间斩杀恶龙)。

输入

第一行两个整数,分别代表$n$和$m$。

随后$n$行,每行有$m$个字符。

"."代表道路,"&"代表恶龙,"@"代表骑士,"x"代表敌怪, "#"代表树。

输出

一个整数,表示勇者从起点出发见到恶龙的最少用时。

如果勇者见不到恶龙则输出$-1$

样例输入 复制

#1
7 8
#.#####.
#.&#..@.
#..#x...
..#..#.#
#...##..
.#......
........

#2
3 5
#....
#.#@.
&###.

#3
4 3
&..
##x
.@.
.#.

#4
5 5
.....
.###.
@###.
x#xx.
xxxx&

#5
5 5
xxxx&
x#xx.
@###.
.###.
.....

#6
10 10
#..#...&.#
#.#####.x.
##..#...##
#..x#.....
.#.#x.##.#
....#.##..
...#x.#...
.....#..#.
.#.#.x....
.....@...#

样例输出 复制

#1
13

#2
-1

#3
6

#4
10

#5
10

#6
13

提示

$1 \leq N,M \leq 200$