Pagini recente » Cod sursa (job #1583866) | Statistici Tunea Catalin (bidaman98caty) | Cod sursa (job #782728) | Cod sursa (job #935941) | Cod sursa (job #2193602)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream cin ("lupu.in");
ofstream cout ("lupu.out");
const int nmax = 100000;
struct Oaie {
int dist;
int val;
}v[1 + nmax];
int n, x, l;
long long sol;
priority_queue <int> pq;
bool comp(Oaie a, Oaie b) {
if(a.dist == b.dist)
return a.val < b.val;
return a.dist < b.dist;
}
int main() {
cin >> n >> x >> l;
for(int i = 1; i <= n; i++) {
cin >> v[i].dist >> v[i].val;
v[i].dist = (x - v[i].dist) / l;
}
sort(v + 1, v + n + 1, comp);
int j = n;
for(int i = v[n].dist; i >= 0; i--) {
while(v[j].dist == i && j >= 1) {
pq.push(v[j].val);
j--;
}
if(!pq.empty()) {
sol += pq.top();
pq.pop();
}
}
cout << sol;
return 0;
}