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