#P1552. 【BFS】迷宫2

【BFS】迷宫2

题目描述

一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走,还有的是传送门,走到传送门可以瞬间传送至任意传送门。

给定一个迷宫,求从左上角走到右下角最少需要走多少步。只能在水平方向或垂直方向走,不能斜着走。

输入格式

第一行是两个整数,R和C,代表迷宫的长和宽。( 1≤ R,C ≤ 40)

接下来是R行,每行C个字符,代表整个迷宫。

空地格子用‘.’表示,有障碍物的格子用‘#’表示,传送门用'$'表示,传送门数目小于10

迷宫左上角和右下角都是‘.’。

输出格式

输出从左上角走到右下角至少要经过多少步。计算步数要包括起点和终点。如果走不到终点输出-1。

样例 #1

样例输入 #1

5 5
.$###
##...
#.#.#
#.#.#
#.#$.

样例输出 #1

3