Cod sursa(job #2412372)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 22 aprilie 2019 10:31:37
Problema Lupul Urias si Rau Scor 72
Compilator cpp-32 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
#include<set>
#include<algorithm>
using namespace std;
ifstream in ("lupu.in");
ofstream out ("lupu.out");
int total,n,l,x,a,b,k,cnt,t;
struct str {
    int lana, timp;
}oite[100005];
bool cmp (str a, str b) {
    return a.timp > b.timp;
}
multiset<int> s;
int main (void) {
    in >> n >> x >> l;
    for (int i = 1; i <= n; i ++) {
        in >> a >> b;
        if (a <= x) {
            k ++;
            oite[k].timp = (x - a) / l + 1;;
            oite[k].lana = b;
        }
    }


    sort (oite+1,oite+k+1,cmp);

    t = oite[1].timp;
    cnt = 1;
    for (int i = t; i >= 1; i --) {
        while (cnt <= k && oite[cnt].timp == i) {
            s.insert(oite[cnt].lana);
            cnt ++;
        }
        total += *(s.rbegin());
        s.erase(--s.end());
    }
    out << total;
    return 0;
}