Cod sursa(job #2398878)

Utilizator serbandonceanSerban Doncean serbandoncean Data 6 aprilie 2019 13:05:00
Problema Lupul Urias si Rau Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
#define DMAX 300100
using namespace std;
ifstream fin("lupu.in");
ofstream fout("lupu.out");
priority_queue<long long int> H;
struct oaie{long long int dist,lana,inter;};
oaie a[DMAX];
long long int n,distmax,dep,rest;
bool compar(oaie x,oaie y)
{
    return x.inter<y.inter;
}
int main()
{long long int i;
    fin>>n>>distmax>>dep;
    rest=distmax%dep;
    for(i=1;i<=n;i++)
        {fin>>a[i].dist>>a[i].lana;
        a[i].inter=a[i].dist/dep+1;
        if(!(a[i].dist%dep))
            a[i].inter--;

        }

    sort(a+1,a+n+1,compar);
    long long int nrmax=0;
    long long int nrint=0;
    long long int c1=1;
    while(nrint<=distmax/dep)
    {
        while(c1<=n&&a[c1].inter==nrint)
            H.push(a[c1].lana),c1++;
        nrmax+=H.top();
        H.pop();
        nrint++;
    }
    fout<<nrmax;
}