Pagini recente » Istoria paginii utilizator/elnino | Profil M@2Te4i | Profil BroBro | Monitorul de evaluare | Cod sursa (job #2176064)
#include <fstream>
#include <iostream>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
long long d[1000005],v[1000005];
int main()
{
int n,s,k;
in >> n >> s >> k;
long long i,c,st=1,dr=0,suma=0;
for (i=1;i<=n;++i)
{
in >> v[i] >> c;
if (st <=dr && d[st]==i-k)
st++;
while (st<=dr && v[i]<=v[d[dr]]+s*(i-d[dr]))
dr--;
d[++dr]=i;
suma+=c*(v[d[st]]+s*(i-d[st]));
}
out << suma;
return 0;
}