Pagini recente » Cod sursa (job #1464188) | Cod sursa (job #1478871) | Cod sursa (job #1938958) | Cod sursa (job #784657) | Cod sursa (job #2863099)
#include<bits/stdc++.h>
#define int long long
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
int n,s,t,dq[100004];
struct elem
{
int c,p;
}v[100004];
signed main()
{
int i,frontt,backk,sum=0;
f>>n>>s>>t;
for(i=1;i<=n;i++)
{
f>>v[i].c>>v[i].p;
}
frontt=1;
backk=0;
for(i=1;i<=n;i++)
{
while(frontt<=backk && v[i].c<=v[dq[backk]].c + 1LL*s*(i-dq[backk]))
backk--;
backk++;
dq[backk]=i;
if(i-dq[frontt]>t)
frontt++;
sum+=1LL*((v[dq[frontt]].c + (i-dq[frontt])*s)*v[i].p);
}
g<<sum;
return 0;
}