Cod sursa(job #1635895)

Utilizator adiXMGemene Adrian adiXM Data 6 martie 2016 20:45:49
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <queue>
#include <algorithm>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
const int NMAX=100005;
struct cmp{
    inline bool operator ()(int x,int y)
    {
        return x<=y;
    }
};
priority_queue <int,vector <int>,cmp > Q;
vector <int> v[NMAX];
int main()
{
    int n,x,d;
    f>>n>>x>>d;
    int mx=0,ln,tmp;
    for(int i=1;i<=n;i++)
    {
        f>>tmp>>ln;
        if(x>=tmp)
        {
            tmp=(x-tmp)/d;
            v[tmp].push_back(ln);
            mx=max(mx,tmp);
        }

    }
    long long sol=0;
    for(int i=mx;i>=0;i--)
    {
        for(int j=0;j<v[i].size();j++)
            Q.push(v[i][j]);
        if(!Q.empty())
        {
            sol+=Q.top();
            Q.pop();
        }
    }
    g<<sol<<"\n";
    return 0;
}