Cod sursa(job #1184866)

Utilizator vyrtusRadu Criuleni vyrtus Data 14 mai 2014 12:19:41
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>

#define nmax 100001

using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");

int N,X,L,t;
long long sol;
vector <int> timp[1000001];
priority_queue <int> q;

int main()
{
    f >> N >> X >> L;
     for (int i=0;i<N;i++)
     {
         int d,c;
         f >> d >> c;
         if (X > d)
         {
             int temp = (X-d) / L;
             timp[temp].push_back(c);
             if (temp > t) t= temp;
         }
     }

    for (int i=t;i>=0;i--)
    {
        for (int j=0;j<timp[i].size();j++)
            q.push(timp[i][j]);

        if (!q.empty()) {sol+=q.top(); q.pop();}
    }

     g << sol;

    return 0;
}