Pagini recente » Cod sursa (job #3000989) | Cod sursa (job #2378450) | Cod sursa (job #893761) | Utilizatori inregistrati la Infoarena Cup 2013 | Cod sursa (job #3177207)
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
const int N = 1e5 + 5;
struct oaie {
int tmp, w;
};
int n, x, l;
long long ans;
priority_queue<int> que;
oaie v[N];
bool cmp(oaie a, oaie b) {
return a.tmp > b.tmp;
}
int main()
{
int k = 0;
in >> n >> x >> l;
for(int i=1; i<=n; i++) {
int a, b;
in >> a >> b;
if(a <= x) {
v[++k].w = b;
v[k].tmp = (x - a) / l + 1;
}
}
sort(v+1, v+n+1, cmp);
v[k+1].tmp = 0;
for(int i=1; i<=k; i++) {
int j = i;
while(j <= k && v[j].tmp == v[i].tmp) {
que.push(v[j].w);
j++;
}
int del = v[i].tmp - v[j].tmp;
while(del && !que.empty()) {
del--;
ans += 1LL * que.top();
que.pop();
}
i = j - 1;
}
out << ans;
return 0;
}