Pagini recente » Cod sursa (job #1035425) | Cod sursa (job #1861628) | Cod sursa (job #1653283) | Cod sursa (job #35757) | Cod sursa (job #3140277)
#include <bits/stdc++.h>
using namespace std;
ifstream in("lupu.in");
ofstream out("lupu.out");
const int NMAX = 100005;
struct Radu{
long long dist;
int lana;
};
Radu v[NMAX];
bool cmp( Radu a, Radu b ){
return a.dist > b.dist;
}
priority_queue <long long> pq;
int main()
{
int n, x, l;
long long 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;
long long 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++;
}
if( j < n ){
pq.push(v[j].lana);
j++;
}
ans += pq.top();
pq.pop();
}
out << ans;
return 0;
}