Pagini recente » Cod sursa (job #2280205) | Cod sursa (job #3154590) | Cod sursa (job #2065990) | Cod sursa (job #1528003) | Cod sursa (job #2054217)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int i, n, t, s, st, dr, c[100000], p[100000], d[100000];
long long sum=0;
ifstream f ("branza.in");
ofstream g ("branza.out");
f>>n>>s>>t;
t++;
for (i=0; i<n; i++) f>>c[i]>>p[i];
st=0;
dr=-1;
for (i=0; i<n; i++)
{
if (st<=dr && d[st]==i-t)
{
st++;
}
while (st<=dr && c[i]<=c[d[dr]]+s*(i-d[dr]))
{
dr--;
}
d[++dr]=i;
sum += p[i] * (c[d[st]] + (long long)s*(i - d[st]));
//g << p[i] * (c[d[st]] + s*(i - d[st])) << " ";
}
g<<sum;
f.close();
g.close();
return 0;
}