Pagini recente » Cod sursa (job #972453) | Borderou de evaluare (job #2196303) | Rating Szekely Andrei (simpleandy) | Cod sursa (job #1542991) | Cod sursa (job #2422344)
#include <bits/stdc++.h>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
const int N = 1e5+5;
long long c[N],v[N],i;
int main()
{
long long n,s,t,p,ans=0,st=0,dr=-1;
in >> n >> s >> t;
for (i = 1; i<=n; i++)
{
in >> c[i] >> p;
if (v[st] == i-t-1)
st++;
while (st<=dr && c[i]<=c[v[dr]]+(i-v[dr])*s)
dr--;
v[++dr] = i;
ans+=p*(c[v[st]]+(i-v[st])*s);
}
out << ans;
}