Cod sursa(job #433248)

Utilizator muskMuscalu Alexandru musk Data 3 aprilie 2010 15:02:36
Problema Castel Scor 30
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.18 kb
var a,b:array[0..151,0..151] of integer;
    c:array[1..22500] of integer;
    i,j,n,m,k,nr:integer;
    ok:boolean;
    f,g:text;
function vecin:boolean;
begin
if (b[i-1,j]=1) or (b[i,j-1]=1) or (b[i+1,j]=1) or (b[i,j+1]=1) then vecin:=true
                                                                else vecin:=false;
end;

begin
assign(f,'castel.in');reset(f);
assign(g,'castel.out');rewrite(g);
readln(f,n,m,k);
for i:=1 to n do
 for j:=1 to m do
  read(f,a[i,j]);
i:=1;
j:=1;
while j+(i-1)*m<>k do
      begin
      if j<m then j:=j+1
             else if j=m then begin
                              j:=1;
                              i:=i+1;
                              end;
      end;
b[i,j]:=1;
c[k]:=1;
nr:=1;
ok:=true;
while ok do
  begin
  ok:=false;
  for i:=1 to n do
   for j:=1 to m do
       if vecin and (c[a[i,j]]=1)and(b[i,j]=0) then begin
                                       c[(i-1)*m+j]:=1;
                                       b[i,j]:=1;
                                       ok:=true;
                                       nr:=nr+1;
                                       end;
  end;

writeln(g,nr);
close(f);
close(g);
end.