Pagini recente » Cod sursa (job #1671098) | Cod sursa (job #341448) | Cod sursa (job #122830) | Cod sursa (job #2563072) | Cod sursa (job #773733)
Cod sursa(job #773733)
Const
finp='Branza.in';
fout='Branza.out';
Type
mat=array [0..100000] of longint;
Var q,c,p,a:mat;
t,n,s,f,r,res:longint;
fi,fo:text;
Procedure Doc;
Var i:longint;
Begin
Assign(fi,finp);
Reset(fi);
Read(fi,n,s,t);
For i:=1 to n do Read(fi,c[i],p[i]);
Close(fi);
end;
Procedure Push(i:longint);
Begin
While (f<=r) and (a[i]<a[q[r]]) do dec(r);
inc(r);
q[r]:=i;
While q[f]<i-t do inc(f);
end;
Procedure Lam;
Var i:longint;
Begin
f:=1;
r:=0;
For i:=1 to n do
Begin
a[i]:=c[i]-i*s;
Push(i);
res:=res+(a[q[f]]+i*s)*p[i];
end;
end;
Procedure Inkq;
Begin
Assign(fo,fout);
Rewrite(fo);
Write(fo,res);
Close(fo);
end;
Begin
Doc;
Lam;
Inkq;
end.