Cod sursa(job #2724768)

Utilizator alessiamtr12Mitrica Alessia alessiamtr12 Data 17 martie 2021 19:46:35
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <fstream>
#include<queue>
#include<algorithm>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
priority_queue<int>v;
struct oi
{
    int strat,lana;
}oaie[100001];
int d,n,x,l,nro,k;
long long sol;
bool cmp(oi x, oi y)
{
    return x.strat>y.strat||(x.strat==y.strat&&x.lana>y.lana);
}
int main()
{
    fin>>n>>x>>l;
    for(int i=1;i<=n;i++)
    {
        fin>>d;
        oaie[i].strat=(x-d)/l+1;
        fin>>oaie[i].lana;
    }
    sort(oaie+1,oaie+n+1,cmp);
    k=x/l+1;///nr straturi
    nro=1;
    for(int i=k;i>=1;i--)///parcurgem straturile
    {
        while(nro<=n&&oaie[nro].strat==i)
        {
            v.push(oaie[nro].lana);
            nro++;
        }
        if(!v.empty())
            sol+=v.top(),v.pop();
    }
    fout<<sol;
    return 0;
}