Cod sursa(job #1248223)

Utilizator ThomasFMI Suditu Thomas Thomas Data 24 octombrie 2014 19:52:14
Problema Lupul Urias si Rau Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <fstream>
#include <algorithm>
#include <queue>
using namespace std;

#define NMax 100005

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

int n,x,l,sol;
priority_queue<int> cd;

struct oaie{int d,c;};
oaie v[NMax];

bool Compare(oaie i,oaie j) {return i.d>j.d;}

int main()
{
    int i,a,b;

    f>>n>>x>>l;
    for(i=1;i<=n;++i)
    {
        f>>b>>a;
        if(b>x) continue;
        v[i].c=a;
        v[i].d=(x-b)/l+1;
    }

    sort(v+1,v+n+1,Compare);

    for(i=1;i<=n;++i)
    {
        if(v[i].d!=v[i-1].d && !cd.empty()) {sol+=cd.top();cd.pop();}
        cd.push(v[i].c);
    }
    sol+=cd.top();

    g<<sol<<"\n";

    f.close();
    g.close();
    return 0;
}