给定一个 $n \times n$ 的方格矩阵,行、列编号为 $1 \sim n$,其中第 $i$ 行第 $j$ 列的方格坐标为 $(i,j)$。
每个方格要么是平地,要么是陷阱。
旅行者从方格 $(r_1,c_1)$ 出发,要前往方格 $(r_2,c_2)$ 处。
出发点和目的地保证都是平地。
旅行者每次移动可以沿上、下、左、右四个方向,移动一格距离。
移动过程中,不得走出矩阵或进入陷阱。
由于存在陷阱的原因,旅行者可能无法顺利抵达目的地。
幸运的是,他可以任意选择两个平地方格,在上面建立一对传送阵。
传送阵能够支持旅行者在两个平地方格之间自由传送。
但是,建立传送阵是一笔不容小视的花费。
在方格 $(r_s,c_s)$ 和 $(r_t,c_t)$ 处建立传送阵,所需成本为 $(r_s-r_t)^2+(c_s-c_t)^2$。
请你计算,为了使旅行者能够成功抵达目的地,建立传送阵所需花费的最低成本。
如果旅行者可以无需建立传送阵,直接走到目的地,那么成本就是 $0$。
注意,最多只能建立一对传送阵。
输入格式
第一行包含整数 $n$,表示矩阵尺寸。
第二行包含两个整数 $r_1,c_1$,表示起点方格坐标为 $(r_1,c_1)$。
第三行包含两个整数 $r_2,c_2$,表示目的地方格坐标为 $(r_2,c_2)$。
接下来 $n$ 行,每行包含一个长度为 $n$ 的 $01$ 字符串,其中第 $i$ 行第 $j$ 个字符如果为 $0$,则表示方格 $(i,j)$ 是平地,如果为 $1$,则表示方格 $(i,j)$ 是陷阱。
输出格式
输出一个整数,表示为了确保旅行能够成功,所需花费的最小成本。
数据范围
前三个测试点满足,$1 \le n \le 10$。
所有测试点满足,$1 \le n \le 50$,$1 \le r_1,c_1,r_2,c_2 \le n$。
输入样例1:
5
1 1
5 5
00001
11111
00111
00110
00110
输出样例1:
10
输入样例2:
3
1 3
3 1
010
101
010
输出样例2:
8
输入样例3:
1
1 1
1 1
0
输出样例3:
0