var a,b,aa,bb:array[1..100005] of int64;
n,m,i,j,x,y,d:longint;
procedure nhap;
var i:longint;
begin
readln(n,m,x,y);
for i:=1 to n do read(a[i]);
readln;
for i:=1 to m do read(b[i]);
end;
procedure qs_a(l,h:longint);
var x,i,j,t:longint;
begin
x:=a[(l+h) div 2];
i:=l;j:=h;
repeat
while a[i] < x do inc(i);
while a[j] > x do dec(j);
if i<=j then
begin
t:=a[i];a[i]:=a[j];a[j]:=t;
inc(i);dec(j);
end;
until i>j;
if L<j then qs_a(L,j);
if i<H then qs_a(i,H);
end;
procedure qs_b(l,h:longint);
var x,i,j,t:longint;
begin
x:=b[(l+h) div 2];
i:=l;j:=h;
repeat
while b[i] < x do inc(i);
while b[j] > x do dec(j);
if i<=j then
begin
t:=b[i];b[i]:=b[j];b[j]:=t;
inc(i);dec(j);
end;
until i>j;
if L<j then qs_b(L,j);
if i<H then qs_b(i,H);
end;
procedure giai;
var i,j:longint;
begin
qs_a(1,n);
qs_b(1,m);
i:=1; j:=1;
while (i<=n) and (j<=m) do
begin
if b[j]<a[i]-x then inc(j)//ao qua chat
else
if b[j]>a[i]+y then inc(i)//ao qua rong
else //mac duoc
begin
inc(d);
aa[d]:=i;
bb[d]:=j;
inc(i);inc(j);
end;
end;
writeln(d);
//for i:=1 to c do writeln(aa[i],' ',bb[i]);
end;
begin
assign(input, 'dongphuc.inp');reset(input);
assign(output, 'dongphuc.out');rewrite(output);
nhap;
giai;
end.
* Chuyên dạy lập trình ONLINE cho học sinh THCS, THPT *.
Mọi giao lưu, trao đổi, xin liên hệ: Lê Quang Vinh - zalo: 037.803.8755.
Page: Lớp học Code Sky
Group FB1: Ôn thi HSG9 - THTB - TS10 chuyên tin
Group FB2: Học Scratch - Ôn thi Tin học trẻ bảng A
Thứ Tư, 27 tháng 4, 2022
DONGPHUC PASCAL
Đăng ký:
Đăng Nhận xét (Atom)
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.