Pagini recente » Cod sursa (job #939183) | Cod sursa (job #47932) | Cod sursa (job #910346) | Cod sursa (job #76350) | Cod sursa (job #1779659)
#include<cstdio>
#include<queue>
#include<vector>
const int NMAX = 100000;
using namespace std;
struct LUPU {
int timp,lana;
} aux;
vector<LUPU>v[NMAX+5];
priority_queue<int>q;
int main() {
freopen ( "lupu.in", "r", stdin );
freopen ( "lupu.out", "w", stdout );
int n, x, l, i, d, a, nr, j;
long long s;
scanf ( "%d%d%d", &n, &x, &l );
for ( i = 1 ; i <= n ; ++ i ) {
scanf ( "%d%d", &d, &a );
if ( d <= x ) {
nr = ( x - d ) / l + 1;
if ( nr > n )
nr = n;
aux.timp=nr;
aux.lana=a;
v[nr].push_back(aux);
}
}
s = 0;
for ( i = n ; i >= 1 ; -- i ) {
for ( j = 0 ; j < v[i].size() ; ++ j )
q.push ( v[i][j].lana );
if ( !q.empty() ) {
nr=q.top();
s=s+nr;
q.pop();
}
}
printf ( "%lld",s );
return 0;
}