Pagini recente » Cod sursa (job #1082396) | Cod sursa (job #916376) | Cod sursa (job #1740455) | Cod sursa (job #2540082) | Cod sursa (job #773841)
Cod sursa(job #773841)
{$INLINE ON}
{$Q-,R-,S-,I-}
const
tfi = 'branza.in';
tfo = 'branza.out';
type
arr1 = array[1..100000] of longint ;
arr2 = array[1..100000] of int64;
var
fi,fo : text;
n,s,t,top1,top : longint ;
st,c : arr1 ;
si,p : arr2 ;
res : int64 ;
procedure Nhap; inline;
var
i :longint;
begin
Read(fi,n,s,t);
read(fi,c[1],p[1]);
si[1]:=c[1]-s;
for i := 2 to n do
begin
Read(fi,c[i],p[i]) ;
si[i] := c[i] - s * i ;
res := res + p[i] * s * i ;
end;
end;
procedure xuly; inline;
var
i : longint;
begin
top1 := 1 ;
top := 1 ;
st[1] := 1;
res := res + c[1] * p[1] ;
for i := 2 to n do
begin
If (top1 <= top) and (i - st[top1] > t) then inc(top1) ;
while (top1 <= top) and (si[i] <= si[st[top]]) do dec(top);
inc(top);
st[top] := i ;
res := res + p[i] * si[st[top1]] ;
end;
write(fo,res);
end;
begin
assign(fi,tfi);reset(fi);
assign(fo,tfo);rewrite(fo);
Nhap;
xuly;
close(fo);
close(fi);
end.