Cod sursa(job #1261223)

Utilizator LizzardStanbeca Theodor-Ionut Lizzard Data 12 noiembrie 2014 02:05:57
Problema Lupul Urias si Rau Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
using namespace std;

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

struct oaie
{
    int t,a;
};

bool fcmp(oaie, oaie);

int main()
{
    int aux1,aux2;
    int n,x,l,tmax = 0,res = 0;
    oaie temp;
    vector <oaie> v;
    priority_queue <int, vector<int>, less<int> > pq;

    fin>>n>>x>>l;
    for(int i=0;i<n;i++)
    {
        fin>>aux1>>aux2;
        if(aux1<=x)
        {
            temp.t = (x-aux1)/l;
            temp.a = aux2;
            v.push_back(temp);
        }
    }
    sort(v.begin(),v.end(),fcmp);
    tmax = v.at(0).t;

    int i = 0;
    while(tmax >= 0)
    {
        for(;i<v.size() && v.at(i).t == tmax;i++)
                pq.push(v.at(i).a);
        if(!pq.empty())
        {
            res+=pq.top();
            pq.pop();
        }
        tmax--;
    }

    fout<<res;

    return 0;
}

bool fcmp(oaie a, oaie b)
{
    return a.t > b.t;
}