Pagini recente » Cod sursa (job #215795) | Cod sursa (job #927982) | Cod sursa (job #2610201) | Borderou de evaluare (job #1569251) | Cod sursa (job #911365)
Cod sursa(job #911365)
#include<stdio.h>
#include<deque>
#include<algorithm>
using namespace std;
deque<int> q;
pair<long long,long long> a[100005];
int main()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
int n,i,t;long long s,ans=0;
scanf("%d%lld%d",&n,&s,&t);
for(i=1;i<=n;i++)
{
scanf("%lld%lld",&a[i].first,&a[i].second);
if(!q.empty() && q.front()+t<i)
q.pop_front();
while(!q.empty() && a[i].first<(a[q.back()].first+s*(i-q.back())))
q.pop_back();
q.push_back(i);
ans=ans+a[q.front()].first*a[i].second+a[i].second*s*(i-q.front());
}
printf("%lld\n",ans);
return 0;
}