Cod sursa(job #2913710)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 16 iulie 2022 12:35:10
Problema Lupul Urias si Rau Scor 96
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <algorithm>
#include <set>
#include <vector>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
int i, j, n, m, k, minn, maxim, minim, aux, x, l, distanta, cantitate, t;
long long sol;
vector <pair<int, int>> v;
multiset<int> s;
multiset<int> ::iterator it;
int main() {
    fin>>n>>x>>l;
    for(i=1;i<=n;i++){
        fin>>distanta>>cantitate;
        v.push_back({(x-distanta)/l, cantitate});
    }
    sort(v.begin(), v.end());
    j=v.size()-1;
    for(t=v[v.size()-1].first; t>=0 ; t--){
        while(j>=0 && v[j].first>=t){
            s.insert(v[j].second);
            j--;
        }
        if(!s.empty()){
            it=s.end();
            it--;
            sol+=*it;
            s.erase(it);
        }
    }
    fout<<sol;
}