Cod sursa(job #2774385)

Utilizator Raresr14Rosca Rares Raresr14 Data 11 septembrie 2021 15:07:13
Problema Lupul Urias si Rau Scor 32
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
#define X first
#define Y second
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
long long n,x,m,l,a,b,maxim,i;
pair<long long, long long> v[100010];
multiset<long long> s;
multiset<long long>::iterator it;
int main(){
    fin>>n>>x>>l;
    for(i=1;i<=n;i++){
        fin>>a>>b;
        if(x>=a){
            v[++m].X=(x-a)/l+1;
            v[m].Y=b;
        }
    }
    sort(v+1,v+m+1);
    for(i=v[m].X;i>=1;i--){
        while(m>=1&&v[m].X==i){
            s.insert(v[m].Y);
            m--;
        }
        if(!s.empty()){
            it=s.end();
            it--;
            maxim+=*it;
            s.erase(*it);
        }
    }
    fout<<maxim;
    return 0;
}