Cod sursa(job #848265)

Utilizator misinozzz zzz misino Data 5 ianuarie 2013 10:36:05
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>
#include<algorithm>
#include<queue>
using namespace std;
ifstream f("lupu.in");
ofstream g("lupu.out");
int i,l,n,x,dist;
long long s;
struct oaie{int d,val;};
oaie a[100110];
bool cmp(oaie a,oaie b)
{
    return a.d>b.d;
}
int main()
{
    f>>n>>x>>l;
    for(i=1;i<=n;++i)
    {
        f>>dist>>a[i].val;
        a[i].d=(x-dist+l)/l;
    }
    sort(a+1,a+n+1,cmp);
    dist=a[1].d;
    i=1;
    priority_queue<int>v;
    while(dist)
    {
        while(a[i].d==dist&&i<=n)
        {
            v.push(a[i].val);
            ++i;
        }
        if(v.empty()==0)
        {
            s+=v.top();
            v.pop();
        }
        --dist;
    }
    g<<s<<'\n';

    return 0;
}