Cod sursa(job #197596)

Utilizator dyzzy_dyzzyStanciulescu Daniel dyzzy_dyzzy Data 5 iulie 2008 11:35:54
Problema Gropi Scor 0
Compilator fpc Status done
Runda Junior Challenge 2008 Marime 1.33 kb
type    vector=array[1..1000] of longint;
        matrice=array[1..2,1..1000] of longint;
var c,n,x,x1,m,i,y,y1:longint;

    a:matrice;
    f,g:text;
procedure citire;
var i,x,y:longint;
begin
readln(f,c,n);
for i:=1 to n do
begin
readln(f,x,y);
a[x,y]:=-1;
end;
readln(f,m);
end;
procedure completare;
var v1,v2:vector;
    ult,p:longint;
begin
ult:=1;
a[1,1]:=1;
v1[1]:=1;
v2[1]:=1;
p:=1;
while p<=ult do
begin
if (v1[p]+1<=2)  and (a[v1[p]+1,v2[p]]=0) then
begin
ult:=ult+1;
v1[ult]:=v1[p]+1;
v2[ult]:=v2[p];
a[v1[p]+1,v2[p]]:=a[v1[p],v2[p]]+1;
end;
{//----------------- }
if (v1[p]-1>0)  and (a[v1[p]-1,v2[p]]=0) then
begin
ult:=ult+1;
v1[ult]:=v1[p]-1;
v2[ult]:=v2[p];
a[v1[p]-1,v2[p]]:=a[v1[p],v2[p]]+1;
end;
{//-----------------------}
if (v2[p]+1<=c)  and (a[v1[p],v2[p]+1]=0) then
begin
ult:=ult+1;
v1[ult]:=v1[p];
v2[ult]:=v2[p]+1;
a[v1[p],v2[p]+1]:=a[v1[p],v2[p]]+1;
end;
{//---------}
if (v2[p]-1>0)  and (a[v1[p],v2[p]-1]=0) then
begin
ult:=ult+1;
v1[ult]:=v1[p];
v2[ult]:=v2[p]-1;
a[v1[p],v2[p]-1]:=a[v1[p],v2[p]]+1
end;
{//-----------------------}
p:=p+1;
end;
end;
begin
assign(f,'gropi.in');
assign(g,'gropi.out');
reset(f);
rewrite(g);
citire;
completare;
for i:=1 to m do
begin
readln(f,x,y,x1,y1);
writeln(g,abs(a[x,y]-a[x1,y1])+1);
end;
close(f);
close(g);
end.