Pagini recente » Cod sursa (job #1205502) | Cod sursa (job #1905713) | Cod sursa (job #2793424) | Cod sursa (job #1130623) | Cod sursa (job #499954)
Cod sursa(job #499954)
# include <algorithm>
# include <cstdio>
# include <queue>
using namespace std ;
# define T first
# define D second.first
# define A second.second
const char *FIN = "lupu.in", *FOU = "lupu.out" ;
const int MAX = 100005 ;
pair < int, pair < int, int > > V[MAX] ;
priority_queue < int > H ;
int N, X, L, maxi ;
void read_data ( void ) {
freopen ( FIN, "r", stdin ) ;
scanf ( "%d %d %d", &N, &X, &L ) ;
for ( int i = 1; i <= N; ++i ) {
scanf ( "%d %d", &V[i].D, &V[i].A ) ;
V[i].T = ( X - V[i].D ) / L ;
maxi = max ( maxi, V[i].T ) ;
}
sort ( V + 1, V + N + 1, greater < pair < int, pair < int, int > > > () ) ;
}
void solve ( void ) {
long long rez = 0 ;
for ( int i = 1; maxi >= 0; --maxi ) {
for ( ; maxi == V[i].T ; H.push ( V[i++].A ) ) ;
if ( ! H.empty () ) {
rez += H.top () ;
H.pop () ;
}
}
fprintf ( fopen ( FOU, "w" ) , "%lld", rez ) ;
}
int main ( void ) {
read_data (), solve () ;
}