【数据范围】
N<=1000
#include<bits/stdc++.h>
usingnamespacestd;
inta[1005][1005],ans;
intdx[4]={0,0,-1,1};
intdy[4]={1,-1,0,0};
intq1[1000005],q2[1000005];
intb[1005][1005],n,h,t=1;
intxx,yy,x,y,x11,y11;
string s;
intmain(){
cin>>n;
for(inti=1;i<=n;i++){
cin>>s;
for(intj=0;j<n;j++)
if(s[j]=='1')
a[i][j+1]=1;
}
cin>>x>>y>>x11>>y11;
if(x==x11&&y==y11){
cout<<0;
return0;
}
q1[1]=x;
q2[1]=y;
a[x][y]=1;
while(h<t){
h++;
for(inti=0;i<4;i++){
xx=q1[h]+dx[i];
yy=q2[h]+dy[i];
if(xx>0&&xx<=n&&yy>0&&yy<=n&&a[xx][yy]==0){
t++;
a[xx][yy]=1;
q1[t]=xx;
q2[t]=yy;
b[xx][yy]=b[q1[h]][q2[h]]+1;
if(xx==x11&&yy==y11){
cout<<b[xx][yy];
return0;
}
}
}
}
return0;
}