2381: 超级龙骑
内存限制:64 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:17
解决:2
题目描述
当所有人终于费力的将狗狗排成一条直线之后,抽筋流高手又布置了另一个任务。他让每个人操作一个可爱的超级龙骑,找寻一条最短了路径去毁掉一个特殊的建筑物(Crystal’s Love——简称CL)。
这个龙骑之所以叫做超级龙骑,是因为他的射程为无穷大。然而,这种龙骑却只能打上,下,左,右,左上,右上,左下,右下八个方向,而且这种龙骑的攻击不可穿墙。即是说如果他攻击的目标在墙后:
龙骑————————————墙————————目标
那么这个目标就无法被攻击到。
现在给出一张N*M的地图,然后给出龙骑的初始位置(X1,Y1),再给出CL的位置(X2,Y2)。假设龙骑移动一步需要单位1的时间。龙骑发炮需要的时间<0.000000000001,即是说龙骑消灭CL不需要时间。
现在请你求出最少需用多少时间才能消灭CL。
输入
每组数据第一行为2个数N,M表示矩阵的规模(N为高,M为宽).
接下来是N*M的矩阵,O表示空地,X表示障碍物.
最后是多对数据分别是目标坐标及我方步兵的坐标(显然不可能在障碍物上),每对占一行,0为结束标志.
输出
能到达能打击到目标的位置的最短步数(显然若能直接打到则时间为0),若没有这样的位置存在则输出'Impossible!'.
样例输入 复制
3 4
OXXO
XXOO
XOOO
3 2 2 4
3 3 1 1
0 0 0 0
样例输出 复制
1
Impossible!
提示
对于30%的数据,有N*M<=100
对于50%的数据,有N*M<=400
对于100%的数据,有N*m<=1600
(其实这题最大数据 <= 150*150, 上面那是坑你的)