Pagini recente » Cod sursa (job #2803995) | Cod sursa (job #933654) | Cod sursa (job #2788290) | Cod sursa (job #1498895) | Cod sursa (job #3140275)
#include <bits/stdc++.h>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
const int NMAX = 100001;
struct Radu{
int dist, lana;
};
Radu v[NMAX];
bool cmp( Radu a, Radu b ){
return a.dist > b.dist;
}
priority_queue <int> pq;
int main()
{
int n, x, l, maxi = 0;
in >> n >> x >> l;
for( int i = 0; i < n; i++ ){
in >> v[i].dist >> v[i].lana;
v[i].dist = (x - v[i].dist) / l;
maxi = max( maxi, v[i].dist );
}
sort( v, v + n, cmp );
int j = 0, ans = 0;
for( int i = 0; i <= maxi; i++ ){
while( j < n-1 && v[j].dist == v[j+1].dist ){
pq.push(v[j].lana);
j++;
}
pq.push(v[j].lana);
j++;
ans += pq.top();
pq.pop();
}
out << ans;
return 0;
}