0*1 2013-08-12 00:33:00
点我顶贴
收藏
删除
const
d1:array[1..4]of -1..1=(-1,0,1,0);
d2:array[1..4]of -1..1=(0,-1,0,1);
var
a:array[0..1001,0..1001]of 0..1;
h:array[1..10000001,1..3]of longint;
ch:char;
i,j,n,q,w,t,y:longint;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to n do
begin
read(ch);
if ch='0' then a[i,j]:=1;
end;
readln;
end;
readln(h[1,1],h[1,2]);
readln(q,w);
h[1,3]:=0;
t:=1;
y:=1;
repeat
for i:=1 to 4 do
if a[h[t,1]+d1[i],h[t,2]+d2[i]]=1 then
begin
inc(y);
h[y,1]:=h[t,1]+d1[i];
h[y,2]:=h[t,2]+d2[i];
a[h[y,1],h[y,2]]:=0;
h[y,3]:=h[t,3]+1;
if (h[y,1]=q) and (h[y,2]=w) then
begin
writeln(h[y,3]);
halt;
end;
end;
inc(t);
until t>y;
end.