Cod sursa(job #2053761)

Utilizator refugiatBoni Daniel Stefan refugiat Data 1 noiembrie 2017 11:57:41
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;
ifstream si("lupu.in");
ofstream so("lupu.out");
vector<pair<int,int> > v;
priority_queue<int>h;
int main()
{
    int n,x,l;
    si>>n>>x>>l;
    int a,b;
    for(int i=1;i<=n;++i)
    {
        si>>a>>b;
        if(a<=x)
            v.push_back({(x-a)/l,b});
    }
    sort(v.rbegin(),v.rend());
    long long ans=0LL;
    int ind=0;
    for(int i=n;i>=0;--i)
    {
        while(ind<n&&v[ind].first==i)
        {
            h.push(v[ind].second);
            ++ind;
        }
        if(!h.empty())
        {
            ans+=h.top();
            h.pop();
        }
    }
    so<<ans;
    return 0;
}