Cod sursa(job #2913623)

Utilizator biancalautaruBianca Lautaru biancalautaru Data 15 iulie 2022 15:41:14
Problema Lupul Urias si Rau Scor 96
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <set>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int n,x,l,d,a;
vector<pair<int,int>> v;
multiset<int> s;
multiset<int>::iterator it;
int main() {
    fin>>n>>x>>l;
    for (int i=1;i<=n;i++) {
        fin>>d>>a;
        v.push_back({(x-d)/l,a});
    }
    sort(v.begin(),v.end());
    long long sol=0;
    int j=v.size()-1;
    for (int i=v[j].first;i>=0;i--) {
        while (j>=0 && v[j].first>=i) {
            s.insert(v[j].second);
            j--;
        }
        if (!s.empty()) {
            it=s.end();
            it--;
            sol+=*it;
            s.erase(it);
        }
    }
    fout<<sol;
    return 0;
}