Cod sursa(job #2034236)

Utilizator RaduMirceaAndreiRadu Mircea Andrei RaduMirceaAndrei Data 7 octombrie 2017 17:15:40
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
# include <fstream>
# include <set>
# include <algorithm>
# define DIM 100010
# define f first
# define s second
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
multiset<int> myset;
multiset<int>::iterator it;
pair<int,int> v[DIM];
int n,x,l,i,pas,nr;
long long s;
int main () {
    fin>>n>>x>>l;
    for(i=1;i<=n;i++){
        fin>>v[i].f>>v[i].s;
        v[i].s=-v[i].s;
        v[i].f=max(-1,(x-v[i].f)/l)+1;
    }
    sort(v+1,v+n+1);
    for(i=1;i<=n;){
        pas=v[i].f;
        while(v[i].f==pas&&i<=n){
            myset.insert(-v[i].s);
            nr++;
            i++;
        }
        while(nr>pas){
            it=myset.begin();
            myset.erase(it);
            nr--;
        }
    }
    for(it=myset.begin();it!=myset.end();it++)
        s+=(*it);
    fout<<s<<"\n";
    return 0;
}