Pagini recente » Cod sursa (job #2040329) | Cod sursa (job #428831) | Cod sursa (job #896874) | Cod sursa (job #663709) | Cod sursa (job #2052880)
#include <fstream>
#include <iostream>
using namespace std;
long long p[100001],c[100001],d[100001],sum;
int main()
{
int n,s,k,dr,st,i;
ifstream f("branza.in");
f>>n>>s>>k;
for(i=0;i<n;i++)
f>>c[i]>>p[i];
st=0;
dr=-1;
for(i=0;i<n;i++)
{
while(st<=dr && c[i]<=c[d[dr]]+s*(i-d[dr]))
dr--;
d[++dr]=i;
if(st<=dr && d[st]==i-k)
st++;
sum=sum+c[d[st]]*p[i]+s*(i-d[st])*p[i];
}
ofstream g("branza.out");
g<<sum;
return 0;
}