求大婶指点!
program xxg;
var
n,i,j,k,t,w,zx,zy,p,mix:longint;
s:ansistring;
l:array[0..1005,0..1005]of integer;
a,x,y:array[0..1000005]of longint;
procedure xxg(f:longint);
begin
if (f=1)and(l[x[t]-1,y[t]]=0) then
begin inc(w);x[w]:=x[t]-1;y[w]:=y[t];a[w]:=a[t]+1;exit; end;
if (f=2)and(l[x[t]+1,y[t]]=0) then
begin inc(w);x[w]:=x[t]+1;y[w]:=y[t];a[w]:=a[t]+1;exit; end;
if (f=3)and(l[x[t],y[t]-1]=0) then
begin inc(w);x[w]:=x[t];y[w]:=y[t]-1;a[w]:=a[t]+1;exit; end;
if (f=4)and(l[x[t],y[t]+1]=0) then
begin inc(w);x[w]:=x[t];y[w]:=y[t]+1;a[w]:=a[t]+1;exit; end;
end;
begin
readln(n);
fillchar(a,sizeof(a),0);
fillchar(y,sizeof(l),0);
for i:=1 to n do
begin
readln(s);
for j:=1 to n do
l[i,j]:=ord(s[j])-48;
l[0,i]:=1;l[n+1,i]:=1;l[i,0]:=1;l[i,n+1]:=1;
end;
readln(x[1],y[1]);
readln(zx,zy);
t:=0;w:=1;
repeat
inc(t);
if (x[t]=zx)and(y[t]=zy) then begin writeln(a[t]); exit; end;
l[x[t],y[t]]:=1;
for i:=1 to 4 do xxg(i);
until t>=w;
end.