Cod sursa(job #1133880)

Utilizator lianaliana tucar liana Data 5 martie 2014 19:23:30
Problema Lupul Urias si Rau Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
#define nmax 100005
int n, dmax, l, d, a, z, i, nrz;
long long rez, unu;
pair<long long, long long> v[nmax]; //
multiset <long long> h;

void citire()
{
    scanf("%ld %ld %ld",&n,&dmax,&l);
    for (i=1;i<=n;i++)
    {
        scanf("%ld %ld",&d,&a);
        z=(dmax-d)/l+1;
        v[i]=make_pair(z,a);
    }
}

void rezolvare()
{
    for(i=1;i<=n;i++)
    {
        h.insert(v[i].second);  rez+=v[i].second;
        if (h.size()>v[i].first)
        {
            rez-=*h.begin();
            h.erase(h.begin());
        }
    }
}

int main()
{
    freopen("lupu.in","r",stdin);
    freopen("lupu.out","w",stdout);
    citire();
    sort(v+1,v+1+n);
    rezolvare();
    printf("%lld",rez);
    return 0;
}