Cod sursa(job #3299105)

Utilizator ifrimdragosIfrim Dragos ifrimdragos Data 4 iunie 2025 16:14:48
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;

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

struct oi
{
    int dist;
    int lana;
    int runde;
};
bool ok(oi a , oi b)
{
    return a.runde < b.runde;
}
int main()
{
    int n,x,l,i;
    fin>>n>>x>>l;
    oi e[n+1];
    int nrrunde=0,lana=0;

    for(i=1;i<=n;i++)
    {
        fin>>e[i].dist>>e[i].lana;
        e[i].runde=(x-e[i].dist)/l + 1;
        nrrunde=max(nrrunde,e[i].runde);

    }
    sort(e+1,e+n+1,ok);
    priority_queue<int>q;

    int j=n;
    for(i=nrrunde;i>=1;i--)
    {
        while(i==e[j].runde)
         {
             q.push(e[j].lana);
             j--;
         }
         if(!q.empty())
         {
             lana+=q.top();

             q.pop();
         }

    }
    fout<<lana;

    return 0;
}