Cod sursa(job #1582158)

Utilizator vancea.catalincatalin vancea.catalin Data 27 ianuarie 2016 18:19:46
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<iostream>
#include<fstream>
#include<algorithm>
#include<vector>
#include<set>
using namespace std;
fstream fin("lupu.in",ios::in),fout("lupu.out",ios::out);
vector<pair<int,int> > v;
multiset<int> heap;
multiset<int> :: iterator it;
int main()
{
    long long i,n,x,l,a,b,bara,s=0;
    fin>>n>>x>>l;
    bara=(x+1)%l;
    for(i=0;i<n;i++) fin>>a>>b,v.push_back(make_pair(a,b));
    sort(v.begin(),v.end());
    for(i=0;i<n && bara<=x+1; )
    {
        while(i<n && v[i].first<bara)
        {
            heap.insert(v[i].second);
            i++;
        }
        if(!heap.empty())
        {
            it=heap.end();it--;
            s+=*it;
            heap.erase(it);
        }
        bara+=l;
    }
    fout<<s;
}