atcoder#ABC246E. [ABC246E] Bishop 2

[ABC246E] Bishop 2

配点 : 500500

コンテスト開催当時はメモリ制限が2GBでしたが、ジャッジ環境が異なるため、現在はメモリ制限を1GBに設定しております。なお、このメモリ制限でもAC出来ることは確認しています。

問題文

ここに、 N×NN \times N のチェス盤があります。このチェス盤の上から ii 行目、左から jj 列目にあるマスをマス (i,j)(i,j) と呼びます。 チェス盤の情報は NN 個の文字列 SiS_i として与えられます。 文字列 SiS_ijj 文字目である Si,jS_{i,j} には、以下の情報が含まれています。

  • Si,j=S_{i,j}= . のとき マス (i,j)(i,j) には何も置かれていない。
  • Si,j=S_{i,j}= # のとき マス (i,j)(i,j) には白のポーンが 11 つ置かれている。このポーンを動かしたり取り除いたりすることはできない。

この盤面のマス (Ax,Ay)(A_x,A_y) に、白のビショップを 11 つ置きました。 この白のビショップをチェスのルール (注記参照) に従ってマス (Ax,Ay)(A_x,A_y) からマス (Bx,By)(B_x,B_y) に移動させるために必要な最小の手数を求めてください。 ただし、移動できない場合は代わりに -1 を出力してください。

注記

マス (i,j)(i,j) に置かれている白の ビショップ

は、 11 手で以下のルールに従って移動することができます。

  • 各正整数 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) \neq (B_x,B_y)
  • SiS_i. および # からなる NN 文字の文字列
  • SAx,Ay=S_{A_x,A_y}= .
  • SBx,By=S_{B_x,B_y}= .

入力

入力は以下の形式で標準入力から与えられる。

NN

AxA_x AyA_y

BxB_x ByB_y

S1S_1

S2S_2

\vdots

SNS_N

出力

答えを出力せよ。

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

以下のように移動させることで 33 手でビショップを (1,3)(1,3) から (3,5)(3,5) まで移動させることができます。 22 手以内でビショップを (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