Cod sursa(job #2914619)

Utilizator daria_pDaria Popescu daria_p Data 20 iulie 2022 15:08:06
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;

ifstream fin("lupu.in");
ofstream fout("lupu.out");
priority_queue<int> Q;
struct lupu
{
    int l,t;
    bool operator<(const lupu &o)
    {
        return t<o.t;
    }
};
lupu v[100005];
int n,k,q,i,sol,d[100005],p,t;
int main()
{
    fin >>n>>k>>q;
    for(i=1;i<=n;i++)
    {
        fin >>d[i]>>v[i].l;
        v[i].t=(k-d[i])/q;
    }
    sort(v+1,v+n+1);
    p=n;
    t=v[n].t;
    while(t>=0)
    {
        while(p>0 && v[p].t>=t)
        {
            Q.push(v[p].l);
            p--;
        }
        if(!Q.empty()) {sol+=Q.top();Q.pop();}
        t--;
    }
    fout <<sol;
    return 0;
}