Cod sursa(job #3332094)

Utilizator VladStroicaStroica Vlad Cristian VladStroica Data 4 ianuarie 2026 12:28:39
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <bits/stdc++.h>
#define int long long
using namespace std;

struct cows
{
    int dist,val;
};
cows v[100005];

bool CMP(cows a,cows b)
{
    return a.dist>b.dist;
}

signed main()
{
    ifstream cin("lupu.in");
    ofstream cout("lupu.out");
    int n,dmax,add,maxm=0,sum=0;
    cin>>n>>dmax>>add;
    for(int i=0;i<n;i++)
    {
        cin>>v[i].dist>>v[i].val;
        v[i].dist=(dmax-v[i].dist)/add+1;
        maxm=max(maxm,v[i].dist);
    }
    sort(v,v+n,CMP);

    priority_queue<int>pq;
    int j=0;
    for(int i=maxm;i>0;i--)
    {
        for(;j<n;j++)
        {
            if(v[j].dist==i)
            {
                pq.push(v[j].val);
            }
            else
                break;
        }
        if(!pq.empty())
        {
            sum+=pq.top();
            pq.pop();
        }
    }
    cout<<sum;

    return 0;
}