Cod sursa(job #2974592)

Utilizator Diana_IonitaIonita Diana Diana_Ionita Data 4 februarie 2023 11:24:33
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("lupu.in");
ofstream fout("lupu.out");
#define nmax  100005
long long n,x,suma,i,lim,y,a,dist,rasp;
pair<long long,long long> v[nmax];
priority_queue<pair<long long,long long> > q;
int main()
{
    fin>>n>>x>>dist;
    suma=0;
    for(long long i=1; i<=n; i++)
    {
        fin>>a>>y;
        v[i].first=a;
        v[i].second=y;
        if(v[i].first <= x) suma+=v[i].second;
    }
    if(dist==0)
    {
        fout<<suma;
        return 0;
    }
    sort(v+1,v+n+1);
    lim = x%dist;
    i=1;
    while(lim<=x)
    {
        for(; i<=n && v[i].first <=lim; i++)
        {
            q.push({v[i].second,v[i].first});
        }
        if(!q.empty())
        {
            rasp+=q.top().first;
            q.pop();
        }
        lim+=dist;
    }
    fout<<rasp;
    return 0;
}