Cod sursa(job #26974)
Utilizator | Data | 5 martie 2007 23:03:45 | |
---|---|---|---|
Problema | Ograzi | Scor | 10 |
Compilator | fpc | Status | done |
Runda | Arhiva de probleme | Marime | 1.99 kb |
var ad,xs:array[0..50000,1..2] of word;
t:text;
N,M,W,H:longint;
I,j,k,xp,yp:longint;
HANY:longint;
function benne(x,y:longint):byte;
var e,u:longint;
megvan:boolean;
begin
e:=1;
megvan:=false;
while ((xs[e,1]+w)<(x)) and (e<n) do inc(e);
while ((xs[e,1]<=x) and (not megvan)) and (e<n)
do begin
if xs[e,1]<=x then
if (xs[e,1]+w)>=x then
if (ad[xs[e,2],2]<=y)
and ((ad[xs[e,2],2]+h)>=y) then
megvan:=true;
inc(E);
end;
if megvan then benne:=1 else benne:=0;
end;
procedure sort;
var i,j,jump:longint;
done:boolean;
begin
jump:=n;
while jump>1 do begin
jump:=jump div 2;
repeat
done:=true;
for i:=1 to n-jump do
begin
j:=i+jump;
if xs[i,1]>xs[j,1] then
begin
xs[0]:=xs[i];
xs[i]:=xs[j];
xs[j]:=xs[0];
done:=false;
end;
end;
until done;
end;
end;
begin
assign(t,'ograzi.in');
reset(T);
read(t,N,M,W,H);
for i:=1 to n do begin
read(t,xp);
read(t,yp);
ad[i,1]:=xp;
xs[i,1]:=xp;
xs[i,2]:=i;
ad[i,2]:=yp;
end;
sort;
hany:=0;
for i:=1 to m do begin
read(t,xp,yp);
hany:=hany+benne(xp,yp);
end;
assign(t,'ograzi.out');
rewrite(T);
writeln(t,hany);
close(T);
end.