Pagini recente » Arhiva de probleme | Cod sursa (job #128431) | Arhiva de probleme | here_we_go_oni_11-12 | Cod sursa (job #773129)
Cod sursa(job #773129)
const
tfi = 'branza.in';
tfo = 'branza.out';
Nmax = 100001;
type
arr1 = array[0..Nmax] of longint ;
var
fi,fo : text;
n,s,t,top1,top : longint ;
st : arr1 ;
c,p,si : array[0..Nmax] of int64 ;
res : int64 ;
procedure Nhap;
var
i,j,k :longint;
begin
REad(fi,n,s,t);
for i := 1 to n do
begin
Read(fi,c[i],p[i]) ;
si[i] := s * i ;
end;
end;
procedure xuly;
var
i,j,k: longint;
begin
top1 := 1 ;
top := 1 ;
st[1] := 1;
res := c[1] * p[1] ;
for i := 2 to n do
begin
while (top1 <= top) and (i - st[top1] > t) do inc(top1) ;
while (top1 <= top) and (c[i] - si[i] <= c[st[top]] - si[st[top]]) do dec(top);
inc(top);
st[top] := i ;
res := res + p[i] * (c[st[top1]] - si[st[top1]] + si[i]) ;
end;
end;
procedure inkq;
var
i,j,k: longint;
begin
write(fo,res);
end;
begin
assign(fi,tfi);reset(fi);
assign(fo,tfo);rewrite(fo);
Nhap;
xuly;
inkq;
close(fo);
close(fi);
end.