Pagini recente » Cod sursa (job #2189288) | Cod sursa (job #256967) | Cod sursa (job #2734400) | Cod sursa (job #2663399) | Cod sursa (job #50487)
Cod sursa(job #50487)
var a,b:array[0..100000] of longint; f1,f2:text; i,x,n,l,max,nr:longint;
procedure pozitie(var m:longint; p,u:longint);
var i,j,di,dj,aux:longint;
begin
di:=0;
dj:=-1;
i:=p;
j:=u;
while i<j do
begin
if a[i]>a[j] then
begin
aux:=di;
di:=-dj;
dj:=-aux;
aux:=a[i];
a[i]:=a[j];
a[j]:=aux;
aux:=b[i];
b[i]:=b[j];
b[j]:=aux;
end;
i:=i+di;
j:=j+dj;
end;
m:=i;
end;
procedure quick(p,u:longint);
var m:longint;
begin
if p<u then
begin
pozitie(m,p,u);
quick(p,m-1);
quick(m+1,u);
end;
end;
begin
assign(f1,'lupu.in');
reset(f1);
assign(f2,'lupu.out');
rewrite(f2);
read(f1,n,x,l);
for i:=1 to n do readln(f1,a[i],b[i]);
quick(1,n);
max:=-maxlongint;
for i:=n downto 1 do begin
if a[i]+l>x then if max<b[i] then max:=b[i];
if a[i-1]+l<=x then begin nr:=nr+max; max:=-maxlongint; end;
while a[i-1]+l<=x do dec(x,l);
end;
{ if max<>-maxlongint then nr:=nr+max;}
writeln(f2,nr);
close(f1);
close(f2);
end.