A83485.Bishop 2

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

有一个 N×NN \times N 的国际象棋棋盘。棋盘上从上往下第 ii 行,从左往右第 jj 列的格子称为格子 (i,j)(i, j)
棋盘的信息以 NN 个字符串 SiS_i 给出。
字符串 SiS_i 的第 jj 个字符 Si,jS_{i,j} 包含以下信息:

  • Si,j=.S_{i,j} = \texttt{.} 时,格子 (i,j)(i, j) 上没有任何棋子。
  • Si,j=#S_{i,j} = \texttt{\#} 时,格子 (i,j)(i, j) 上有一个白色兵(pawn)。这个兵不能被移动或移除。

现在在棋盘的格子 (Ax,Ay)(A_x, A_y) 上放置了一个白色主教(bishop)。
请你求出,按照国际象棋的规则(见下方注释),将这个主教从 (Ax,Ay)(A_x, A_y) 移动到 (Bx,By)(B_x, B_y) 所需的最少步数。
如果无法移动到目标位置,则输出 1-1

输入格式

输入以如下格式从标准输入读入:

NN AxA_x AyA_y BxB_x ByB_y
S1S_1
S2S_2
\vdots
SNS_N

输出格式

请输出答案。

说明/提示

注释

放在格子 (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) 上没有白色兵。

约束条件

  • 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) \ne (B_x, B_y)
  • SiS_i 是由 .# 组成的长度为 NN 的字符串
  • SAx,Ay=.S_{A_x, A_y} = \texttt{.}
  • SBx,By=.S_{B_x, B_y} = \texttt{.}

样例解释 1

如下图所示,可以通过 33 步将主教从 (1,3)(1, 3) 移动到 (3,5)(3, 5)。无法在 22 步以内完成。

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

样例解释 2

无论如何移动主教,都无法将其从 (3,2)(3, 2) 移动到 (4,2)(4, 2)

首页