Cod sursa(job #254588)

Utilizator DiaconuDiaconu Loredana Diaconu Data 7 februarie 2009 13:07:22
Problema Kdrum Scor 0
Compilator fpc Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.92 kb
var  f,g:text;
     v:array[0..60,0..60] of longint;
     ok:array[0..60,0..60] of boolean;
     i,j,n,m,min,drum,x,y,xx,yy,k:longint;


procedure lee(x,y:integer);
begin
ok[x,y]:=false;
inc(drum);
if (x=xx) and (y=yy) then begin
 if min>drum then min:=drum;
end
else begin
if ok[x+1,y] then if v[x+1,y]<>0 then lee(x+1,y);
if ok[x-1,y] then if v[x-1,y]<>0 then lee(x-1,y);
if ok[x,y+1] then if v[x,y+1]<>0 then lee(x,y+1);
if ok[x,y-1] then if v[x,y-1]<>0 then lee(x,y-1);
end;
dec(drum);
ok[x,y]:=true;
end;

begin
assign (f,'kdrum.in');reset(f);
assign (g,'kdrum.out');rewrite (g);
readln (f,n,m,k);
readln (f,x,y,xx,yy);
for i:=1 to n do
 for j:=1 to m do
  read (f,v[i,j]);
for i:=1 to n do begin
 v[i,0]:=0;
 v[i,m+1]:=0;
end;
for j:=1 to m do begin
 v[0,j]:=0;
 v[n+1,j]:=0;
end;
drum:=0;
min:=maxint;
fillchar(ok,sizeof(ok),true);
lee (x,y);
writeln (g,min);
close(f);close(g);
end.