Cod sursa(job #3361887)

Utilizator RobertIon013Ion Robert Andrei RobertIon013 Data 29 iulie 2026 13:20:02
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <bits/stdc++.h>

using namespace std;
int N;
long long X,L,s=0;
priority_queue<long long,vector<long long>,greater<long long>> h;
vector<pair<long long,long long>> v;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    freopen("lupu.in","r",stdin);
    freopen("lupu.out","w",stdout);
    cin>>N>>X>>L;
    if(L==0)
    {
        long long D,A;
        for(int i=0;i<N;i++)
        {
            cin>>D>>A;
            if(D<=X)s+=A;
        }
        cout<<s;
        return 0;
    }
    for(int i=0;i<N;i++)
    {
        long long D,A;
        cin>>D>>A;
        if(D>X)continue;
        long long j=(X-D)/L;
        if(j<0)continue;
        v.push_back({j,A});
    }
    sort(v.begin(),v.end());
    for(size_t i=0;i<v.size();i++)
    {
        h.push(v[i].second);
        if((long long)h.size()>v[i].first+1) h.pop();
    }
    while(!h.empty())
    {
        s+=h.top();
        h.pop();
    }
    cout<<s;
}