Cod sursa(job #3329075)

Utilizator TeodoRazvanStancu Teodor-Razvan TeodoRazvan Data 11 decembrie 2025 17:27:28
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("lupu.in");
ofstream fout("lupu.out");

int n,x,l;

bool cmp(pair<int,int>a,pair<int,int>b){
    if(a.first<=b.first) return false;
    return true;
}

int main(){
    ios::sync_with_stdio(false);
    fin.tie(NULL);
    fout.tie(NULL);
    fin>>n>>x>>l;
    vector<pair<int,int>>v(n);
    for(int i=0;i<n;i++) fin>>v[i].first>>v[i].second;
    sort(v.begin(),v.end(),cmp);
    long long int rez=0,t=0;
    priority_queue<int,vector<int>,greater<int>>pq;
    for(int i=0;i<n;i++){
        if(v[i].first+t*l<=x){
            pq.push(v[i].second);
            rez+=v[i].second;
            t++;
        }else{
            if(!pq.empty()){
                if(v[i].second>pq.top()){
                    rez+=v[i].second-pq.top();
                    pq.pop();
                    pq.push(v[i].second);
                }
            }
        }
    }
    fout<<rez;
    return 0;
}