Cod sursa(job #2412395)

Utilizator AlmaChan13Petria Mitran Alma Elena AlmaChan13 Data 22 aprilie 2019 10:55:04
Problema Lupul Urias si Rau Scor 96
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include <set>
#include <algorithm>
#define mm first
#define ln second
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
long long n,i,a,b,x,L,k,sol,poz;
pair <long long, long long> v[100010];
multiset<long long> s;
multiset<long long>::iterator it;
int main () {
    fin>>n>>x>>L;
    for (i=1;i<=n;i++) {
        fin>>v[i].mm>>v[i].ln;
        if (v[i].mm <= x) {
          k++;
          v[k].mm=1+(x-v[i].mm)/L;
        }

    }
    n=k;
    sort (v+1,v+n+1);
    poz=n;
    for (i=v[n].mm;i>=1;i--) {
        while (v[poz].mm==i && poz>=1) {
            s.insert(v[poz].ln);
            poz--;
        }
        if (!s.empty()) {
            it=s.end();
            it--;
            sol+=*it;
            s.erase(it);
        }
    }
    fout<<sol;
}