Cod sursa(job #1180832)

Utilizator azkabancont-vechi azkaban Data 1 mai 2014 10:56:55
Problema Ograzi Scor 20
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.62 kb
Program ograzi;
const prim=1000;
type list=^cell;
     cell=record
                 infodown :longint;
                 infoup :longint;
                  val : longint;
                 pred:list;
           end;
var n,m,w,h,i,j,a,b,k : longint;
    lhash  : array[0..1000] of list;
    r : list;
    b1,b2 : array [0..1 shl 17] of char;

procedure add(down,up,val : longint;var v : list);
   var r  :list;
     begin
        new(r);
        r^.infodown:=down;
        r^.infoup:=up;
        r^.val:=val;
        r^.pred:=v;
        v:=r;
     end;

begin
   assign(input,'ograzi.in'); settextbuf(input,b1); reset(input);
   assign(output,'ograzi.out'); settextbuf(output,b2); rewrite(output);
   readln(n,m,w,h);
   for i:=1 to n do begin
                         readln(a,b);
                         for j:=a to a+w do
                                add(b,b+h,j,lhash[j mod prim]);
                     end;
   k:=0;
   for i:=1 to m do begin
                          readln(a,b);
                          r:=lhash[a mod prim];
                          while r<>nil do begin
                                 if (r^.infodown<=b) and (r^.infoup>=b)
                                 and (r^.val=a) then begin
                                                          k:=k+1;
                                                          break;
                                                          end
                                 else
                                 r:=r^.pred;
                                 end;
                    end;
   writeln(k);
   close(input);
   close(output) ;
end.