Pagini recente » Cod sursa (job #1041451) | Cod sursa (job #1371700) | Cod sursa (job #583513) | Cod sursa (job #1793129) | Cod sursa (job #2081128)
#include <fstream>
#include <algorithm>
#include <queue>
#define f first
#define s second
using namespace std;
ifstream F( "lupu.in" );
ofstream G( "lupu.out" );
int n, X, L, d, a, k, t, j, ans;
pair<int, int> v[ 100005 ];
priority_queue<int> pq;
int main()
{
F >> n >> X >> L;
for( int i = 1; i <= n; ++ i )
{
F >> d >> a;
if( d <= X && (X - d) / L + 1 <= X )
v[ ++ k ] = { -((X - d) / L + 1), a };
}
sort( v + 1, v + k + 1 );
for( int i = 1; i <= k; ++ i )
{
t = v[ i ].f;
j = i;
while( v[ i ].f == t )
{
pq.push( v[ i ].s );
i ++;
}
ans += pq.top();
pq.pop();
if( i != j ) i--;
}
G << ans;
return 0;
}