Pagini recente » Cod sursa (job #1786441) | Cod sursa (job #1851193) | Cod sursa (job #2740599) | Cod sursa (job #1099948) | Cod sursa (job #2060755)
#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 * (c[d[st]] + s*(i - d[st]));
}
g<<sum;
return 0;
}