Pagini recente » Cod sursa (job #181374) | Cod sursa (job #842685) | Cod sursa (job #238920) | Cod sursa (job #1871931) | Cod sursa (job #2169283)
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
const int MaxN = 100005;
ll n, s, k, cost[MaxN], dem[MaxN], ans;
deque<ll> dq;
int main()
{
f >> n >> s >> k;
for (int i = 1; i <= n; ++i) f >> cost[i] >> dem[i];
for (int i = 1; i <= n; ++i) {
if (!dq.empty() && i > k && cost[i - k] - s * (i - k) <= dq.front()) dq.pop_front();
while (!dq.empty() && dq.back() > cost[i] - s * i) dq.pop_back();
dq.push_back(cost[i] - s * i);
ans += dem[i] * (dq.front() + s * i);
}
g << ans << '\n';
return 0;
}