#P2199. 最后的迷宫

    ID: 1169 远端评测题 1000ms 128MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>搜索枚举,暴力广度优先搜索,BFS队列

最后的迷宫

Description

哈利的视力非常好,他能从迷宫的一端沿直线看到迷宫的另一端(但他只能看八个方向——东北,东,东南,南,西南……),而且他跑得非常快,跑一步(向上、下、左、右移动一格)只需要 1s1\text{s}。但迷宫是不透光的,而且,要烧掉迷宫的墙也不容易,所以哈利决定绕到一个能够看到奖杯的地方。现在,哈利希望你能帮他确定最短需要多长时间才能拿到奖杯。

Input Format

第一行为 22 个数 N,MN,M 表示迷宫的规模(NN 为高,MM 为宽)

接下来是 N×MN \times M 的迷宫,O\texttt{O} 表示空地,X\texttt{X} 表示墙。

最后是多对数据,分别是奖杯坐标及哈利的坐标(显然不可能在墙上),每对占一行,00 为结束标志。

Output Format

根据每对数据,计算哈利拿到奖杯的最短时间,每对一行。如果魔法部有意难为选手,用墙将奖杯包围了起来,输出 Poor Harry\texttt{Poor Harry}

3 4
OXXO
XXOO
XOOO
3 2 2 4
3 3 1 1
0 0 0 0

1
Poor Harry

Hint

对于 30%30\% 的数据,有 N×M100N\times M\le100

对于 60%60\% 的数据,有 N×M1600N\times M\le1600

对于 100%100\% 的数据,有 N×M16384N\times M\le16384

询问数据对数不超过 512512