Pagini recente » Cod sursa (job #614909) | Cod sursa (job #2373691) | Cod sursa (job #953161) | Cod sursa (job #2900939) | Cod sursa (job #1414809)
#include <bits/stdc++.h>
using namespace std;
#define MAXN 100050
int N, X, L;
pair<int, int> A[MAXN];
priority_queue<int, vector<int>, greater<int> > S;
int main() {
freopen("lupu.in", "r", stdin);
freopen("lupu.out","w", stdout);
scanf("%d %d %d", &N, &X, &L);
for (int i = 0; i < N; i++) {
scanf("%d %d", &A[i].first, &A[i].second);
}
sort(A, A + N);
int i = N - 1;
while (i >= 0) {
if (A[i].first > X) {
continue;
}
int d = (X - A[i].first) / L + 1;
while (i >= 0 && (X - A[i].first) / L + 1 == d) {
S.push(A[i].second);
i--;
}
while (S.size() > d) {
S.pop();
}
}
long long ans = 0;
while (!S.empty()) {
ans += S.top();
S.pop();
}
printf("%lld\n", ans);
return 0;
}