Cod sursa(job #2912746)

Utilizator Robert_MitriRobert Mitri Robert_Mitri Data 10 iulie 2022 14:58:00
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");

int n,x,l,l2,suma;

struct numar{
 int d;
 int val;
}v[100005];

priority_queue <int> a;

bool cmp(numar a,numar b)
{
    if(a.d != b.d)
        return a.d<b.d;
}



int main()
{
    fin>>n>>x>>l;


    for(int i=1;i<=n;i++){
        fin>>v[i].d>>v[i].val;
        v[i].d=(x-v[i].d)/l;
    }
    sort(v+1,v+n+1,cmp);
    int t = v[n].d;
    while(t>=0)
    {
        while(n!=0 && v[n].d>=t)
            a.push(v[n].val),n--;
        if (a.empty()==false)
        suma+=a.top(),a.pop();
        t--;
    }
    fout<<suma;



}

/*
0 7
1 13
3 16
3 16
4 3
4 10
4 14
4 18
5 16
6 7

16 18 13 7
*/