Pagini recente » Cod sursa (job #3357644) | Cod sursa (job #3311215) | Cod sursa (job #2230713) | Cod sursa (job #3341808) | Cod sursa (job #3308528)
#include <fstream>
#include<deque>
#include<algorithm>
using namespace std;
ifstream cin("branza.in");
ofstream cout("branza.out");
int n,s,t;
deque<pair<int,int>>h;
int v[100005],c[100005],p[100005];
int main()
{
int cnt=0;
cin>>n>>s>>t;
for(int i=1;i<=n;i++){
cin>>c[i]>>p[i];
}
for(int i=1;i<=n;i++){
v[i]=c[i]-s*i;
}
int k=t+1;
for(int i=1;i<=n;i++){
while(!h.empty() && h.back().first>v[i])h.pop_back();
while(!h.empty() && h.front().second<i-k+1)h.pop_front();
h.push_back({v[i],i});
cnt+=(h.front().first+s*i)*p[i];
}
cout<<cnt;
}