唐僧误入盘丝洞,盘丝洞错综复杂。但是唐僧得到了盘丝洞的地图。发现出口居然在盘丝洞的深处。
该地由M×N个方格组成,有的方格内有可以抓住唐僧的妖怪把守(众所周知,手无寸铁的唐僧是打不过凶神恶煞的妖怪的),而有的方格内则是安全。
现在唐僧想尽快脱险显然他应避开有妖怪的方格,并经过最少的方格。
快帮唐僧跑起来吧,RUN!RUN!RUN!
唐僧误入盘丝洞,盘丝洞错综复杂。但是唐僧得到了盘丝洞的地图。发现出口居然在盘丝洞的深处。
该地由M×N个方格组成,有的方格内有可以抓住唐僧的妖怪把守(众所周知,手无寸铁的唐僧是打不过凶神恶煞的妖怪的),而有的方格内则是安全。
现在唐僧想尽快脱险显然他应避开有妖怪的方格,并经过最少的方格。
快帮唐僧跑起来吧,RUN!RUN!RUN!
输入有多组测试数据。
每组测试数据以两个非零整数 M 和 N 开始。M 表示盘丝洞行数, N 表示盘丝洞列数。
接下来有 M 行, 每行包含 N 个字符,不同字符分别代表不同含义:
1) ‘@’:唐僧所在的位置;
2) ‘.’:可以安全通行的方格;
3) ‘#’:有妖怪的方格;
4) ‘*’:出口位置。
当在一行中读入的是两个零时,表示输入结束。
对于每组测试数据,分别输出一行,该行包含唐僧找到出口需要穿过的最少的方格数目(计数包括初始位置的方块)。
如果唐僧将要死在盘丝洞的话, 则输出 -1。
8 8
.@##...#
#....#.#
#.#.##..
..#.###.
#.#...#.
..###.#.
...#.*..
.#...###
6 5
.*.#.
.#...
..##.
.....
.#...
....@
9 6
.#..#.
.#.*.#
.####.
..#...
..#...
..#...
..#...
#.@.##
.#..#.
0 0
10
8
-1
1≤N,M≤300