Cod sursa(job #3003794)

Utilizator newagear2Dragan Iulian newagear2 Data 15 martie 2023 22:30:21
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <fstream>
#include <queue>
using namespace std;

ifstream cin("lupu.in");
ofstream cout("lupu.out");

int N, X, L;
priority_queue<int, vector<int>, greater<int>> pq;

int main()
{
    cin>>N>>X>>L;
    vector<vector<int>> buckets(X/L+1);
    for(int i=0;i<N;i++){
        int dist, lana;
        cin>>dist>>lana;
        if(dist > X){
            continue;
        }
        buckets[(X-dist)/L].push_back(lana);
    }
    for(int i=0;i<buckets.size();i++){
        for(auto it: buckets[i]){
            pq.push(it);
        }
        while(pq.size() > i+1){
            pq.pop();
        }
    }
    int sum =0;
    while(pq.size() > 0){
        sum += pq.top();
        pq.pop();
    }
    cout<<endl<<sum;
    return 0;
}