#ABC170F. Pond Skater
Pond Skater
题目描述
Snuke, a water strider, lives in a rectangular pond that can be seen as a grid with east-west rows and north-south columns. Let be the square at the -th row from the north and -th column from the west.
Some of the squares have a lotus leaf on it and cannot be entered. The square has a lotus leaf on it if is @
, and it does not if is .
.
In one stroke, Snuke can move between and squares (inclusive) toward one of the four directions: north, east, south, and west. The move may not pass through a square with a lotus leaf. Moving to such a square or out of the pond is also forbidden.
Find the minimum number of strokes Snuke takes to travel from the square to . If the travel from to is impossible, point out that fact.
水黾斯努克生活在一个长方形池塘里,这个池塘可以看作是一个网格,东西方向有 行,南北方向有 列。假设 是位于北面第 行和西面第 列的正方形。
有些方格上有荷叶,无法进入。如果 为"@",则 方格上有荷叶;如果 为".",则 方格上没有荷叶。
在一次下棋中,"斯努克 "可以在 和 (含)之间向北、东、南、西四个方向之一移动。移动不能经过有荷叶的方格。禁止移动到有荷叶的位置或移出池塘。
求斯努克从 到 所需的最少步数。如果从 到 是不可能的,请指出这一事实。
输入格式
输入内容按以下格式标准输入:
输出格式
打印 Snuke 从正方形 到 所需的最少笔画数,如果不可能,则打印 -1
。
样例 #1
样例输入 #1
3 5 2
3 2 3 4
.....
.@..@
..@..
样例输出 #1
5
样例 #2
样例输入 #2
1 6 4
1 1 1 6
......
样例输出 #2
2
样例 #3
样例输入 #3
3 3 1
2 1 2 3
.@.
.@.
.@.
样例输出 #3
-1
说明
数据规模与约定
- 或 。
- 是
.
或@
。 -
.
-
.
- 输入的所有数字都是整数。
样例 解释
最初,斯努克位于 方格。他可以通过以下五步到达方格 :
-
从 向西走一格,到达 。
-
从 向北走两格,到达 。
-
从 向东两格,至 。
-
从 向东走一格至 。
-
从 向南两格,至 。