Cod sursa(job #1367990)

Utilizator 100attilaSzasz Attila 100attila Data 2 martie 2015 12:39:44
Problema Zone Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.79 kb
type tipus=record
             also,jobb,volt:boolean;
             hany:integer;
            end;
var f,g:text;
    temp,irany,p,k,i,j,x,y,n,l:integer;
    r:array[-1..53,-1..53]of tipus;
    b:boolean;

procedure lep(x,y:integer);
begin
r[x,y].hany:=-1;
if(y>0)and(not(r[x,y-1].also))and(r[x,y-1].hany<>-1)then lep(x,y-1);
if(x>0)and(not(r[x-1,y].jobb))and(r[x-1,y].hany<>-1)then lep(x-1,y);
if(y<=n)and(not(r[x,y].also))and(r[x,y+1].hany<>-1)then lep(x,y+1);
if(x<=n)and(not(r[x,y].jobb))and(r[x+1,y].hany<>-1)then lep(x+1,y);

end;

begin
assign(f,'zona.in');
assign(g,'zona.out');
reset(f);
rewrite(g);
readln(f,y,x,n,l);
for i:=0 to 52 do
 for j:=0 to 52 do
                  begin
                   r[i,j].volt:=false;
                   r[i,j].jobb:=false;
                   r[i,j].also:=false;
                  end;
r[x,y].volt:=true;
r[x,y].hany:=0;
k:=1;
for i:=1 to l do
                begin
                 read(f,irany);
                 case irany of 1:begin
                                  r[x,y].jobb:=true;
                                  dec(y);
                                  if r[x,y].volt then k:=k-r[x,y].hany-1;
                                  r[x,y].volt:=true;
                                  r[x,y].hany:=k;
                                  inc(k);
                                 end;
                               2:begin
                                  r[x+1,y].also:=true;
                                  inc(x);
                                  if r[x,y].volt then k:=k-r[x,y].hany-1;
                                  r[x,y].volt:=true;
                                  r[x,y].hany:=k;
                                  inc(k);
                                 end;
                               3:begin
                                  r[x,y+1].jobb:=true;
                                  inc(y);
                                  if r[x,y].volt then k:=k-r[x,y].hany-1;
                                  r[x,y].volt:=true;
                                  r[x,y].hany:=k;
                                  inc(k);
                                 end;
                               4:begin
                                  r[x,y].also:=true;
                                  dec(x);
                                  if r[x,y].volt then k:=k-r[x,y].hany-1;
                                  r[x,y].volt:=true;
                                  r[x,y].hany:=k;
                                  inc(k);
                                 end;
                               end;
                end;

for i:=1 to n do
  for j:=1 to n do r[i,j].hany:=0;

lep(0,0);

p:=0;
for i:=1 to n do
 for j:=1 to n do if r[i,j].hany=0 then inc(p);


writeln(g,k);
writeln(g,p);
close(g);
end.