小塔现在在一个大小为N×M的网格中(用B代表小塔的位置),现在小塔打算到达网格中的*点,但是网格有些单元格中有许多围墙使小塔无法通过。
庆幸的是,小塔有3个炸弹可以将墙炸毁以至于他可以通过此处,小塔每一移动只能移动到没有围墙的单元格中且只能移动至相邻的格子中,每一移动只能移动一步,使用炸弹时也算作移动一步。
现在小塔想知道他最少移动多少步才能到达*点。
输入的第一行给出网格的大小N,M(1≤N,M≤20);
随后N行M列输入网格的信息;
网格中的墙使用W表示;可自由通过的单元格用′.′表示;'*'表示小塔的目的地;B表示小塔的起点;
数据保证起点和目的地都只有一个。
输出最少移动多少步才能到达*点;若无法到达,输出−1
输入
3 3
B..
.W.
..*
输出
4
输入
3 3
BWW
WWW
WW*
输出
7
扫码备注加群即可,期待您的到来~
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.