Cod sursa(job #2412358)

Utilizator MihaelaCismaruMihaela Cismaru MihaelaCismaru Data 22 aprilie 2019 10:16:59
Problema Lupul Urias si Rau Scor 56
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<fstream>
#include<set>
#include<vector>
using namespace std;
ifstream in ("lupu.in");
ofstream out ("lupu.out");
int t[100005],lana[100001],aux[100001],buc,total,n,l,x,oita;
vector<int> v[100001];
multiset<int> s;
int main (void) {
    in >> n >> x >> l;
    for (int i = 1; i <= n; i ++) {
        in >> t[i] >> lana[i];
    }
    for (int i = x; i >= 0; i -= l) {
        buc ++;
        for (int j = i; j > i-l && j >= 0; j --) {
            aux[j] = buc;
        }
    }
    for (int i = 1; i <= n; i ++) {
        t[i] = aux[t[i]];
        v[t[i]].push_back (lana[i]);
    }

    for (int i = buc; i >= 1; i --) {
        for (int j = 0; j < v[i].size(); j ++) {
            s.insert (v[i][j]);
        }
        total += *s.rbegin();
        s.erase(--s.end());
    }

    out << total;

    return 0;
}