A83469.Wizard in Maze
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
有一个由 H 行 W 列组成的 H×W 的迷宫。
第 i 行第 j 列的格子 (i,j),如果 Sij 为 #,则为墙,否则为道路。
有一位魔法使站在格子 (Ch,Cw)。魔法使可以通过以下两种方式移动:
- 移动A:步行到当前格子上下左右相邻的道路格子。
- 移动B:以当前格子为中心,在 5×5 的范围内,通过魔法瞬移到任意道路格子。
无论哪种移动方式,都不能移动到迷宫外。
请问,最少需要使用多少次魔法瞬移才能到达格子 (Dh,Dw)?如果无法到达,则输出 −1。
输入格式
输入按以下格式从标准输入读入。
H W Ch Cw Dh Dw
S11…S1W
⋮
SH1…SHW
输出格式
输出到达 (Dh,Dw) 所需的最小魔法瞬移次数。如果无法到达,则输出 −1。
输入输出样例
输入#1
4 4 1 1 4 4 ..#. ..#. .#.. .#..
输出#1
1
输入#2
4 4 1 4 4 1 .##. #### #### .##.
输出#2
-1
输入#3
4 4 2 2 3 3 .... .... .... ....
输出#3
0
输入#4
4 5 1 2 2 5 #.### ####. #..## #..##
输出#4
2
说明/提示
限制条件
- 1≤H,W≤103
- 1≤Ch,Dh≤H
- 1≤Cw,Dw≤W
- Sij 仅为
#或. - SChCw 和 SDhDw 均为
. - (Ch,Cw)=(Dh,Dw)
样例解释 1
例如,可以先步行到 (2,2),再从 (2,2) 用魔法瞬移到 (4,4),这样魔法瞬移的最小次数为 1。步行不能斜着走。
样例解释 2
无法从当前位置移动。
样例解释 3
不需要使用魔法瞬移。