Pagini recente » Profil eduard50 | Istoria paginii runda/forta | Istoria paginii utilizator/anaana123456789 | Cod sursa (job #1399514) | Cod sursa (job #773979)
Cod sursa(job #773979)
CONST
TFI = 'branza.in';
TFO = 'branza.out';
VAR
N,S,T : longint;
res : int64;
c,p,q : array[1..100000] of longint;
fi,fo : text;
{************************************************************************}
Procedure nhap;
Var
i : longint;
BEgin
Assign(fi,tfi); reset(fi);
read(fi,n,s,t);
For i:=1 to n do read(fi,c[i],p[i]);
Close(fi);
End;
{************************************************************************}
Procedure xuli;
Var
i,l,r : longint;
Begin
res:=0;
l:=1; r:=0;
For i:=1 to n do
begin
While (l<=r) and (c[i]-i*s<c[q[r]]-q[r]*s) do dec(r);
inc(r); q[r]:=i;
While (l<=r) and (q[l]<i-t) do inc(l);
res:=res+(c[q[l]]-q[l]*s)*p[i]+i*s*p[i];
end;
End;
{************************************************************************}
Procedure inkq;
Begin
Assign(fo,tfo); rewrite(fo);
write(fo,res);
Close(fo);
End;
{************************************************************************}
{************************************************************************}
{************************************************************************}
BEGIN
nhap;
xuli;
inkq;
END.