Cod sursa(job #781097)

Utilizator NicuCJNicu B. NicuCJ Data 23 august 2012 12:03:51
Problema Lupul Urias si Rau Scor 64
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 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, sum, distMax, distTura, j;

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(vect[j].x>i+distTura)
                break;
        }
        sum+=heap.top();
        heap.pop();
    }
    g<<sum;
}