Pagini recente » Cod sursa (job #2449558) | Cod sursa (job #291361) | Cod sursa (job #1260073) | Cod sursa (job #913477) | Cod sursa (job #3238666)
#include <bits/stdc++.h>
using namespace std;
const int MAX = 3 * 1e5;
int N, X, L;
pair<int, int>A[MAX + 3];
int main() {
freopen("lupu.in", "r", stdin);
freopen("lupu.out", "w", stdout);
cin >> N >> X >> L;
for(int i = 1; i <= N; i++) {
cin >> A[i].first >> A[i].second;
}
sort(A + 1, A + N + 1);
int i = N;
while(A[i].first > X && i != 0) i--;
long long ans = 0;
priority_queue<int>pq;
for(; i >= 1;) {
while(i >= 1 && A[i].first > X - L) {
pq.push(A[i].second);
i--;
}
if(!pq.empty())
{
ans += pq.top();
X -= L;
while(!pq.empty()) pq.pop();
}
else {
pq.push(A[i].second);
i--;
}
}
cout << ans;
}