Cod sursa(job #1051495)

Utilizator BlueStrutAndrei Prahoveanu BlueStrut Data 10 decembrie 2013 09:52:56
Problema Lupul Urias si Rau Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<cstdio>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
long long i, n, m, k, s, x, y, mx;
multiset<long long> heap;
multiset<long long>::iterator it;
vector< pair<long long,long long> > v;
vector< pair<long long,long long> >::iterator p;
int main() {
    freopen("lupu.in","r",stdin);
    freopen("lupu.out","w",stdout);
    scanf("%lld%lld%lld", &n, &m, &k); s=0;
    for (i=1; i<=n; i++) {
        scanf("%lld%lld", &x, &y);
        if (x>mx) mx=x;
        v.push_back(make_pair((long long)x, (long long)y));
    }
    sort(v.begin(), v.end());
    p=v.begin();
    for (i=1;i<mx-1;i++) {
        for (;p!=v.end()&&(*p).first<=i;p++)
            heap.insert(p->second);
        it=heap.end();
        it--;
        s+=*it;
        heap.erase(it);
    }
    printf("%lld\n", s);
    return 0;
}