Cod sursa(job #197601)

Utilizator theratmantheratman theratman Data 5 iulie 2008 11:45:31
Problema Gropi Scor 0
Compilator fpc Status done
Runda Junior Challenge 2008 Marime 1.15 kb
var a,b:array[1..995000000] of boolean;
    ok:boolean;
    i,n,m,x,x1,x2,y,y1,y2,c,nr:longint;
    f,g:text;
begin
assign(f,'gropi.in');reset(f);
assign(g,'gropi.out');rewrite(g);
read(f,c,n);
for i:=1 to n do begin
 read(f,x,y);
 if x=1 then a[y]:=true
        else b[y]:=true;
end;
read(f,m);
for i:=1 to m do begin
 read(f,x1,y1,x2,y2);
 nr:=1;
 x:=x1;
 y:=y1;
 ok:=false;
 while not ok do begin
  if y1<y2 then begin
  if x=1 then
   if a[y+1]=true then begin
    inc(x);
    inc(nr);
   end
    else begin
     inc(y);
     inc(nr);
    end;
  if x=2 then
   if b[y+1]=true then begin
    dec(x);
    inc(nr);
   end
    else begin
     inc(y);
     inc(nr);
    end;
   end;
  if y2<y1 then   begin
  if x=1 then
   if a[y-1]=true then begin
    inc(x);
    inc(nr);
   end
    else begin
     dec(y);
     inc(nr);
    end;
  if x=2 then
   if b[y-1]=true then begin
    dec(x);
    inc(nr);
   end
    else begin
     dec(y);
     inc(nr);
    end;
  end;
  if y=y2 then
   if x<>x2 then begin
    inc(nr);
    break;
   end
    else break;
 end;
 writeln(g,nr);
end;
close(f);
close(g);
end.