Pagini recente » Cod sursa (job #2637178) | Cod sursa (job #2793008) | Cod sursa (job #2141207) | Cod sursa (job #2972544) | Cod sursa (job #68533)
Cod sursa(job #68533)
program branza;
const Nmax=100000;
var n,t,s,i,st,dr:longint;
c,p:array[1..Nmax]of int64;
l:array[1..Nmax]of longint;
f:text;
min:int64;
begin
assign(f,'branza.in');reset(f);
readln(f,n,s,t);
for i:=1 to n do
readln(f,c[i],p[i]);
min:=c[1]*p[1];
st:=1;
dr:=1;
l[1]:=1;
for i:=2 to t do begin
while (dr>=st)and(c[i]<=c[l[dr]]+s*(i-l[dr])) do dec(dr);
inc(dr);
l[dr]:=i;
min:=min+(c[l[st]]+s*(i-l[st]))*p[i];
end;
for i:=t+1 to n do begin
while l[st]<i-t do inc(st);
while (dr>=st)and(c[i]<=c[l[dr]]+s*(i-l[dr])) do dec(dr);
inc(dr);
l[dr]:=i;
min:=min+(c[l[st]]+s*(i-l[st]))*p[i];
end;
assign(f,'branza.out');rewrite(f);
write(f,min);
close(f);
end.