Cod sursa(job #3189520)

Utilizator xDemonstyMatei Haba Ionut xDemonsty Data 6 ianuarie 2024 00:54:59
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream cin("lupu.in");
ofstream cout("lupu.out");
vector<int> v[100001];
int n, l, x;

int main()
{
    cin >> n >> x >> l;

    for ( int i = 1; i <= n ; i ++ )
    {
        int dist, val;
        cin >> dist >> val ;

        if ( dist > x )
            continue ;

        int c = x - dist ;
        int ind = c / l + 1;
        if (ind > n )
            ind = n ;

        v[ind].push_back(val);
    }

    long long sum = 0 ;

    priority_queue<int> pq ;

    for ( int j = n ; j >= 1; j -- )
    {
        for ( int i = 0 ; i < v[j].size(); i ++ )
        {
            pq.push(v[j][i]);
        }

        if(!pq.empty())
        {
            sum += pq.top();
            pq.pop();
        }
    }

    cout << sum << '\n';


    return 0;
}