[ABC246E] Bishop 2

题意翻译

给定有障碍的网格图,`.` 为空地,`#` 为障碍。给定起点终点,每次移动仅可以斜向走任意长度,问从起点到终点的最少移动次数,可能无解,无解输出 `-1`。

题目描述

[problemUrl]: https://atcoder.jp/contests/abc246/tasks/abc246_e ここに、 $ N\ \times\ N $ のチェス盤があります。このチェス盤の上から $ i $ 行目、左から $ j $ 列目にあるマスをマス $ (i,j) $ と呼びます。 チェス盤の情報は $ N $ 個の文字列 $ S_i $ として与えられます。 文字列 $ S_i $ の $ j $ 文字目である $ S_{i,j} $ には、以下の情報が含まれています。 - $ S_{i,j}= $ `.` のとき マス $ (i,j) $ には何も置かれていない。 - $ S_{i,j}= $ `#` のとき マス $ (i,j) $ には白のポーンが $ 1 $ つ置かれている。このポーンを動かしたり取り除いたりすることはできない。 この盤面のマス $ (A_x,A_y) $ に、白のビショップを $ 1 $ つ置きました。 この白のビショップをチェスのルール (注記参照) に従ってマス $ (A_x,A_y) $ からマス $ (B_x,B_y) $ に移動させるために必要な最小の手数を求めてください。 ただし、移動できない場合は代わりに `-1` を出力してください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_x $ $ A_y $ $ B_x $ $ B_y $ $ S_1 $ $ S_2 $ $ \vdots $ $ S_N $

输出格式


答えを出力せよ。

输入输出样例

输入样例 #1

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

输出样例 #1

3

输入样例 #2

4
3 2
4 2
....
....
....
....

输出样例 #2

-1

输入样例 #3

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

输出样例 #3

9

说明

### 注記 マス $ (i,j) $ に置かれている白の [ビショップ](https://ja.wikipedia.org/wiki/%E3%83%93%E3%82%B7%E3%83%A7%E3%83%83%E3%83%97) は、 $ 1 $ 手で以下のルールに従って移動することができます。 - 各正整数 $ d $ について、以下の条件を全て満たせばマス $ (i+d,j+d) $ に移動できる。 - マス $ (i+d,j+d) $ が盤内に存在する - 全ての正整数 $ l\ \le\ d $ について、 $ (i+l,j+l) $ に白のポーンがない - 各正整数 $ d $ について、以下の条件を全て満たせばマス $ (i+d,j-d) $ に移動できる。 - マス $ (i+d,j-d) $ が盤内に存在する - 全ての正整数 $ l\ \le\ d $ について、 $ (i+l,j-l) $ に白のポーンがない - 各正整数 $ d $ について、以下の条件を全て満たせばマス $ (i-d,j+d) $ に移動できる。 - マス $ (i-d,j+d) $ が盤内に存在する - 全ての正整数 $ l\ \le\ d $ について、 $ (i-l,j+l) $ に白のポーンがない - 各正整数 $ d $ について、以下の条件を全て満たせばマス $ (i-d,j-d) $ に移動できる。 - マス $ (i-d,j-d) $ が盤内に存在する - 全ての正整数 $ l\ \le\ d $ について、 $ (i-l,j-l) $ に白のポーンがない ### 制約 - $ 2\ \le\ N\ \le\ 1500 $ - $ 1\ \le\ A_x,A_y\ \le\ N $ - $ 1\ \le\ B_x,B_y\ \le\ N $ - $ (A_x,A_y)\ \neq\ (B_x,B_y) $ - $ S_i $ は `.` および `#` からなる $ N $ 文字の文字列 - $ S_{A_x,A_y}= $ `.` - $ S_{B_x,B_y}= $ `.` ### Sample Explanation 1 以下のように移動させることで $ 3 $ 手でビショップを $ (1,3) $ から $ (3,5) $ まで移動させることができます。 $ 2 $ 手以内でビショップを $ (1,3) $ から $ (3,5) $ まで移動させることはできません。 - $ (1,3)\ \rightarrow\ (2,2)\ \rightarrow\ (4,4)\ \rightarrow\ (3,5) $ ### Sample Explanation 2 どのようにビショップを動かしても $ (3,2) $ から $ (4,2) $ に移動させることはできません。