Cod sursa(job #2064644)

Utilizator andrei32576Andrei Florea andrei32576 Data 12 noiembrie 2017 17:30:35
Problema Lupul Urias si Rau Scor 16
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include<fstream>
#include<algorithm>
using namespace std;

int n,x,l,i,ct,X;
long long s;
struct oaie{int d,c;};
oaie v[100010];

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

bool comp(oaie a,oaie b)
{
    if(a.d>b.d) return 1;
    if(a.d==b.d && a.c>b.c) return 1;
    return 0;
}

int alege(int p)
{
    int poz=p,cmax=0,pz=0;
    while(v[poz].d+(ct+1)*l>X && poz<=n)
    {
        if(v[poz].c>cmax)
        {
            cmax=v[poz].c;
            pz=poz;
        }
        poz++;
    }
    i=poz-1;
    return pz;
}

int main()
{
    f>>n>>X>>l;

    for(i=1;i<=n;i++)
        f>>v[i].d>>v[i].c;

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

    ct=0;
    for(i=1;i<=n;i++)
    {
        x=alege(i);
        s+=v[x].c;
        ct++;
    }

    g<<s;

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