Pagini recente » Cod sursa (job #899911) | Cod sursa (job #2639000) | Cod sursa (job #2827910) | Cod sursa (job #2704350) | Cod sursa (job #2912311)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
pair<int, int> v[100005];
priority_queue<int> PQ;
int n, x, l;
int main() {
fin >> n >> x >> l;
for(int i = 1; i <= n; i++) {
fin >> v[i].first >> v[i].second;
v[i].first = (x - v[i].first) / l;
}
sort(v + 1, v + n + 1);
long long int ans = 0;
int k = n;
for(int i = v[n].first; i >= 0; i--) {
while(v[k].first == i && k > 0) {
PQ.push(v[k].second);
k--;
}
if(!PQ.empty()) {
ans += 1LL * PQ.top();
PQ.pop();
}
}
fout << ans;
return 0;
}