Pagini recente » Cod sursa (job #627435) | Cod sursa (job #1614941) | Cod sursa (job #779069) | Cod sursa (job #3340460) | Cod sursa (job #3358847)
#include <algorithm>
#include <fstream>
#include <queue>
#include <vector>
#include <functional>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
struct stu {
int final,val;
}v[100001];
bool compare(const stu& a, const stu& b) {
return a.final < b.final;
}
priority_queue<int,vector<int>,greater<int> > pq;
int main() {
int n,x,l;
fin >> n >> x >> l;
for (int i=1;i<=n;i++) {
int d,a;
fin >> d >> a;
v[i].final = (x-d)/l+1;
v[i].val = a;
}
sort(v + 1,v + n + 1,compare);
for (int i=1;i<=n;i++) {
pq.push(v[i].val);
if (pq.size()>v[i].final) {
pq.pop();
}
}
long long sum = 0;
while (!pq.empty()) {
sum += pq.top();
pq.pop();
}
fout << sum;
return 0;
}