Cod sursa(job #1367990)
Utilizator | 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.