Cod sursa(job #781151)

Utilizator NicuCJNicu B. NicuCJ Data 23 august 2012 19:58:25
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>
#include <queue>
#define x first
#define y second
using namespace std;
  
pair <int, int> vect[100001];

priority_queue<int, vector<int>, less<int> > heap;
  
int n, i, distMax, distTura, j;
long long sum;

bool functieComp(pair<int, int> A, pair<int, int> B)
{
    if(A.x<B.x)
        return true;
    return false;
}
  
int main()
{
  
    ifstream f("lupu.in");
    ofstream g("lupu.out");
  
    f>>n>>distMax>>distTura;
  
    for(i=1; i<=n; ++i)
    {
        f>>vect[i].x>>vect[i].y;
    }
  
    sort(vect+1, vect+n+1, functieComp);
    j=1;
    for(i=0; i<=distMax; i+=distTura)
    {
        for(;vect[j].x<=i/*+distTura*/ && j<=n; j++)
        {
            heap.push(vect[j].y);
        }
        if(heap.size())
        {
        sum+=heap.top();
        heap.pop();
        }
    }
    g<<sum;
}