身手敏捷の盗画者
题目描述
Peer Brelstet
站在存画的房间的 \((X_1,Y_1)\) 处。他用你给出一张 \(N×M\) 的地图发现另外在 \((X_2,Y_2)\)处有一个保护画的保镖。假设 Peer Brelstet
移动一步需要 \(1s\) 的时间,他身手敏捷,所以杀死保镖不需要时间,并且他的手枪射程无穷大,但子弹不能穿透坚硬的阻碍物、他只能射向上、下、左、右、左上,右上、左下、右下八个方向。
请求出他最少需要用多少时间才能消灭保镖,拿到画作。
格式
输入格式
第 \(1\) 行为 \(2\) 个数 \(N\) 和 \(M\),表示矩阵的规模(\(N\) 为高,\(M\) 为宽)。
接下来是 \(N×M\) 的矩阵,\(0\) 表示空地,\(X\) 表示坚硬的障碍物。
下面是若干行数据,每行为一对数据,分别是保镖的位置和 Peer Brelstet
的位置(因为 Peer Brelstet
学会了分身术,而保镖可能有多个)。显然,Peer Brelstet
和保镖都不可能在障碍物上。
以“\(0~0~0~0\)”为输入结束标志。
输出格式
输出第 \(1\) 行为 Peer Brelstet
能消灭掉保镖的最短时间。
显然,若能直接打到保镖,则时间为 \(0\);若无法消灭,则第 \(2\) 行再输出“\(\texttt{Impossible!}\)"。
样例1
样例输入1
3 4
0XX0
XX00
X000
3 2 2 4
3 3 1 1
0 0 0 0
样例输出1
1
Impossible!
限制
对于 \(30\%\) 的数据满足:\(N×M≤5000\)。
对于 \(50\%\) 的数据满足:\(N×M≤10000\)。
对于 \(100\%\) 的数据满足:\(N×M≤20000\)。