Cod sursa(job #911987)

Utilizator lily3Moldovan Liliana lily3 Data 11 martie 2013 23:36:41
Problema Lupul Urias si Rau Scor 72
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
#include<set>
#include<algorithm>
using namespace std;

unsigned long long i,j,d,l,n,rez=0,timp;
multiset<int, greater <int> > heap;
struct oite
{
    unsigned long long dist,lana;
};
oite a[100001];
bool cmp(oite a,oite b)
{
    return a.dist<b.dist;
}
int main()
{
    ifstream f("lupu.in");
    ofstream g("lupu.out");
    f>>n>>d>>l;
    for(i=1;i<=n;++i)
    {
        f>>a[i].dist>>a[i].lana;
        a[i].dist=(d-a[i].dist)/l+1;
        timp=max(timp,a[i].dist);
    }
    sort(a+1,a+n+1,cmp);
    while(timp)
    {
        while(n>0&&a[n].dist==timp)
        {
            heap.insert(a[n].lana);
            --n;
        }
        if(heap.size()>0)
        {
            rez+=*heap.begin();
            heap.erase(heap.begin());
        }
        --timp;
    }
    g<<rez<<"\n";
    return 0;
}