Pagini recente » Cod sursa (job #213532) | Cod sursa (job #51440) | Cod sursa (job #1364047) | Cod sursa (job #1663683) | Cod sursa (job #2081130)
#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;
long long 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 );
pq.push(0);
for( int i = 1; i <= k; ++ i )
{
if( t != v[ i ].f )
{
ans += pq.top();
pq.pop();
t = v[ i ].f;
}
pq.push( v[ i ].s );
}
ans += pq.top();
G << ans;
return 0;
}