Cod sursa(job #710533)

Utilizator tudgal1001Profir Tudor tudgal1001 Data 9 martie 2012 21:13:39
Problema Lupul Urias si Rau Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<cstdio>
#include<cstdlib>
using namespace std;

typedef int (*compfn)(const void *, const void*);

struct ceva
{
    int d,l;
};
ceva a[100005];

int compare (struct ceva *x,struct ceva *y)
{
    if (x->l < y->l)
        return 1;
    if (x->l==y->l && x->d < y->d)
        return 1;
    if (x->l==y->l && x->d > y->d)
        return -1;
    if (x->l > y->l)
        return -1;
    return 0;
}

int main ()
{
    int n,x,ll,i,crt;
    long long sum=0,lplus=0;
    //freopen("lupu.in","r",stdin);
    //freopen("lupu.out","w",stdout);
    scanf("%d%d%d",&n,&x,&ll);
    for (i=1; i<=n; i++)
        scanf("%d%d",&a[i].d,&a[i].l);
    qsort(a+1,n,sizeof(ceva),(compfn)compare);
    crt=1;
    while (crt<=n)
    {
        if (a[crt].d+lplus<=x)
        {
            sum+=a[crt].l;
            lplus+=ll;
        }
        crt++;
    }
    printf("%lld",sum);
    return 0;
}