T793035 【C1132】 - 迷宫最短路径
题目描述
一个迷宫由r行c列格子组成,有的格子有障碍物,不能走;有的格子是空地,可以走。
现在给定一个迷宫数据,求从指定的出发坐标走到终点坐标最少需要的步数。
只能往水平方向或者竖直方向走,不能斜着走。
输入格式
第1行,两个正整数r和c,分别代表迷宫的长和宽
接下来r行,每行c个字符,代表整个迷宫
空地格子使用`.`表示,有障碍物的格子用`#`表示
接下来1行,是出发点坐标x1和y1,用空格分隔(起点坐标为`(1,1`)
接下来1行,是终点坐标x2和y2,用空格分隔(终点坐标为`(r,c)`)
起点和终点坐标不会相同
输出格式
输出从出发坐标(x1, y1)到终点坐标(x2, y2)所需要的最少的步数(即至少要经过多少个空地格子)。计算步数要包括起点和终点
如果不能从(x1, y1)走到(x2, y2)则输出-1(包括起点坐标、终点坐标的迷宫为`#`的情形)
说明/提示
100%的数据:$1 \le r, c\le 40$,
出发点坐标和终点坐标都在合理的范围内,即在[1,1]到[r,c]之间