Cod sursa(job #3342731)

Utilizator labubu67Labubu labubu67 Data 25 februarie 2026 14:34:03
Problema Lupul Urias si Rau Scor 8
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#pragma GCC optimize("O3,unroll-loops")
#include <bits/stdc++.h>

using namespace std;
const int NMAX = 1e5;
priority_queue< pair<long long,long long> > q;
pair<long long,long long> v[NMAX+5];
bool cmp(pair<long long,int> a, pair<long long,int> b){
    return a.second<b.second;
}
int main()
{
    ifstream fin("lupu.in");
    ofstream fout("lupu.out");
    int n,x,l;fin>>n>>x>>l;
    for(int i=1;i<=n;i++){
        fin>>v[i].second>>v[i].first;
    }
    sort(v+1,v+n+1,cmp);
    int ult=1,gasit=0;
    for(int i=1;i<=n;i++){
        if(v[i].second<=x){
            q.push(v[i]);
        }
        else{ult=i;gasit=1;break;}
    }
    if(gasit==0){ult=n+1;}
    int total=0,cnt=1;
    while(!q.empty()){
        pair<long long ,long long>a;
        while(!q.empty()){
            a=q.top();q.pop();
            if(a.second+(cnt-1)*l<=x){
                total+=a.first;break;
            }
        }
        gasit=0;
        for(int i=ult;i<=n;i++){
            if(v[i].second+cnt*l<=x){
                q.push(v[i]);
            }
            else{
                ult=i;break;
            }
        }
        if(gasit==0){ult=n+1;}
        cnt++;
    }
    fout<<total<<'\n';
    return 0;
}