Pagini recente » Cod sursa (job #1104916) | Cod sursa (job #957248) | Cod sursa (job #2334133) | Cod sursa (job #3343381) | Cod sursa (job #3307888)
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin ("branza.in");
ofstream fout ("branza.out");
int c[100005],p[100005];
int v[100005];
deque <pair <int,int>> dq;
signed main()
{
int n,S,T;
fin >> n >> S >> T;
for (int i=1;i<=n;++i){
fin >> c[i] >> p[i];
}
for (int j=1;j<=n;++j){
v[j] = c[j]-S*j;
}
int ans = 0;
int k = T+1;
for (int i=1;i<=n;++i){
while (!dq.empty() and dq.back().first>v[i]) dq.pop_back();
while (!dq.empty() and dq.front().second<i-k+1) dq.pop_front();
dq.push_back({v[i],i});
ans += (dq.front().first+S*i)*p[i];
}
fout << ans;
return 0;
}