英文原题面:https://atcoder.jp/contests/abc246/tasks/abc246_e
我们有一个 棋盘。 令 表示该棋盘顶部从第 -th 行和从左侧开始的第 -th 列的正方形。
棋盘由 个字符串 描述。
字符串 的第 个字符, 的含义如下:
如果 = .,则正方形 为空。
.
如果 = #,则 位置被一个白棋占据,不能被移动或移除。
#
我们在 的位置上放了一个白象。
根据国际象棋的规则(见注释),找出将此象从 移至 所需的最少步数。
如果它不能被移到 ,输出 -1 代替。
-1
广场上的白色象 可以一次移动到以下位置:
输入由以下格式的标准输入构成:
N A_x A_y B_x B_y S_1 S_2 ··· S_N
输出答案。
样例输入 1
5 1 3 3 5 ....# ...#. ..... .#... #....
样例输出 1
3
样例输入 2
4 3 2 4 2 .... .... .... ....
样例输出 2
样例输入 3
18 18 1 1 18 .................. .####............. .#..#..####....... .####..#..#..####. .#..#..###...#.... .#..#..#..#..#.... .......####..#.... .............####. .................. .................. .####............. ....#..#..#....... .####..#..#..####. .#.....####..#.... .####.....#..####. ..........#..#..#. .............####. ..................
样例输出 3
9
样例 1 解释:我们可以按如下三步将象从 移动到 ,但不能用两步或更少的步数。
样例 2 解释:没有办法把象从 移动到 。