Cod sursa(job #2287109)

Utilizator anca.sotirAnca Sotir anca.sotir Data 21 noiembrie 2018 15:17:33
Problema Lupul Urias si Rau Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");

struct oaie
{
    long long int lana;
    long long int poz;
};

bool comparaOiPoz(oaie a,oaie b)
{
    if(a.poz<b.poz)
        return true;
    return false;
}

vector <oaie> oi;

priority_queue <long long int> oi_disp;

int main()
{
    long long int n,range,pas;
    f>>n>>range>>pas;
    oi.resize(n);

    for(long long int i=0; i<n; ++i)
    {
        f>>oi[i].poz>>oi[i].lana;
    }

    sort(oi.begin(),oi.end(),comparaOiPoz);

    long long int range_temp=range%pas;
    long long int ans=0;
    long long int i=0;

    while(range_temp<=range)
    {
        for(;i<n && oi[i].poz<=range_temp; ++i)
            oi_disp.push(oi[i].lana);

        if(!oi_disp.empty())
        {
            ans+=oi_disp.top();
            oi_disp.pop();
        }

        range_temp+=pas;
    }

    g<<ans;
    return 0;
}