#ABC246E. 主教 2

主教 2

主教 2

题目描述

我们有一个 N×NN \times N 的棋盘。用 (i,j)(i, j) 表示该棋盘从上数第 ii 行、从左数第 jj 列的格子。

棋盘由 NN 个字符串 SiS_i 描述。

字符串 SiS_i 的第 jj 个字符 Si,jS_{i,j} 的含义如下。

  • Si,j=S_{i,j} = .,则格子 (i,j)(i, j) 是空的。
  • Si,j=S_{i,j} = #,则格子 (i,j)(i, j) 被一个白色兵占据,该兵无法移动或移除。

我们把一个白色主教放在格子 (Ax,Ay)(A_x, A_y) 上。

求出按照国际象棋的规则(见下注)把该主教从 (Ax,Ay)(A_x, A_y) 移动到 (Bx,By)(B_x, B_y) 所需的最少步数。

如果无法移动到 (Bx,By)(B_x, B_y),则输出 -1。

注:一个位于格子 (i,j)(i, j) 的白色主教,一步可以移动到以下位置。

  • 对每个正整数 dd,若满足以下所有条件,则可以移动到 (i+d,j+d)(i+d, j+d):
    • 格子 (i+d,j+d)(i+d, j+d) 存在于棋盘内。
    • 对任意正整数 ldl \le d,格子 (i+l,j+l)(i+l, j+l) 均未被白色兵占据。
  • 对每个正整数 dd,若满足以下所有条件,则可以移动到 (i+d,jd)(i+d, j-d):
    • 格子 (i+d,jd)(i+d, j-d) 存在于棋盘内。
    • 对任意正整数 ldl \le d,格子 (i+l,jl)(i+l, j-l) 均未被白色兵占据。
  • 对每个正整数 dd,若满足以下所有条件,则可以移动到 (id,j+d)(i-d, j+d):
    • 格子 (id,j+d)(i-d, j+d) 存在于棋盘内。
    • 对任意正整数 ldl \le d,格子 (il,j+l)(i-l, j+l) 均未被白色兵占据。
  • 对每个正整数 dd,若满足以下所有条件,则可以移动到 (id,jd)(i-d, j-d):
    • 格子 (id,jd)(i-d, j-d) 存在于棋盘内。
    • 对任意正整数 ldl \le d,格子 (il,jl)(i-l, j-l) 均未被白色兵占据。

输入格式

输入按以下格式从标准输入给出:

N
A_x A_y
B_x B_y
S_1
S_2
⋮
S_N

输出格式

输出答案。

样例

5
1 3
3 5
....#
...#.
.....
.#...
#....
3

我们可以用三步把主教从 (1,3)(1,3) 移动到 (3,5)(3,5),但无法用两步或更少步完成。

$(1,3) \rightarrow (2,2) \rightarrow (4,4) \rightarrow (3,5)$

4
3 2
4 2
....
....
....
....
-1

不存在把主教从 (3,2)(3,2) 移动到 (4,2)(4,2) 的方法。

18
18 1
1 18
..................
.####.............
.#..#..####.......
.####..#..#..####.
.#..#..###...#....
.#..#..#..#..#....
.......####..#....
.............####.
..................
..................
.####.............
....#..#..#.......
.####..#..#..####.
.#.....####..#....
.####.....#..####.
..........#..#..#.
.............####.
..................
9

数据范围

  • 2N15002 \le N \le 1500
  • 1Ax,AyN1 \le A_x, A_y \le N
  • 1Bx,ByN1 \le B_x, B_y \le N
  • (Ax,Ay)(Bx,By)(A_x, A_y) \neq (B_x, B_y)
  • SiS_i 是由 .# 组成的长度为 NN 的字符串。
  • SAx,AyS_{A_x, A_y}.
  • SBx,ByS_{B_x, B_y}.
难度 提高
通过率 20%
尝试 5
已通过 1
ID
2420
类型
传统题
Time Limit
4916ms
Memory Limit
1024MiB
上传者
标签