Cod sursa(job #2081130)

Utilizator workwork work work Data 4 decembrie 2017 00:24:43
Problema Lupul Urias si Rau Scor 32
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#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;
}