Pagini recente » Cod sursa (job #3341416) | Cod sursa (job #883782) | Cod sursa (job #1631709) | Cod sursa (job #3324776) | Cod sursa (job #3308848)
#include <bits/stdc++.h>
using namespace std;
int main()
{
freopen("branza.in", "r", stdin);
freopen("branza.out", "w", stdout);
cin.tie(nullptr)->sync_with_stdio(false);
int n, d, m;
cin >> n >> d >> m;
vector<int> v(n + 1), c(n + 1), q(n + 1);
for(int i = 1; i <= n; i++)
{
cin >> c[i] >> q[i];
v[i] = c[i] - d * i;
}
deque<pair<int, int>> dq;
int ans = 0;
for(int i = 1; i <= n; i++)
{
while(dq.size() && dq.back().first > v[i])
{
dq.pop_back();
}
if(dq.size() && dq.front().second < i - m)
{
dq.pop_front();
}
dq.push_back({v[i], i});
ans += (dq.front().first + d * i) * q[i];
}
cout << ans;
}