Cod sursa(job #1505711)

Utilizator raulmuresanRaul Muresan raulmuresan Data 19 octombrie 2015 18:03:53
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
#include<queue>
#include<algorithm>

using namespace std;

ifstream in("lupu.in");
ofstream out("lupu.out");

int n,x,k;
priority_queue <int> H;
pair <int, int> A[100010];

int main()
{
    int i;
    long long sol = 0;

    in>>n>>x>>k;
    for(i=1;i<=n;i++)
        in>>A[i].first>>A[i].second;

    sort(A+1, A+1+n);

    for(int d=0,i=1; d<=x; d+=k)
    {
        while(i<=n && A[i].first<=d)
            H.push(A[i++].second);
        if(!H.empty())
        {
            sol += H.top();
            H.pop();
        }
    }

    out<<sol<<'\n';

    out.close();
    return 0;
}