Cod sursa(job #1791458)

Utilizator rares1012Rares Cautis rares1012 Data 29 octombrie 2016 13:34:39
Problema Carnati Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<cstdio>
#include<algorithm>

struct Client
{
    int timp;
    int pret;
};

Client v[2000];
bool cmp(Client a,Client b)
{
    return a.timp<b.timp;
}

int main()
{
    int n,k,i,s,inc,maxp=0,j;
    FILE*fi,*fo;
    fi=fopen("carnati.in","r");
    fo=fopen("carnati.out","w");
    fscanf(fi,"%d%d",&n,&k);
    for(i=0; i<n; i++)
        fscanf(fi,"%d%d",&v[i].timp,&v[i].pret);
    std::sort(v,v+n,cmp);
    maxp=0;
    for(i=0; i<n; i++)
    {
        s=-k;
        inc=v[0].timp;
        for(j=0; j<n; j++)
        {
            if(v[j].pret>=v[i].pret)
            {
                s+=v[i].pret;
                s=s-((v[j].timp-inc)*k);
                inc=v[j].timp;
            }
            if(s>maxp)
            {
                maxp=s;

            }
            if(s-((v[j].timp-inc)*k)<0)
            {
                s=-k;
                inc=v[j+1].timp;

            }
        }
    }
    fprintf(fo,"%d",maxp);
    fclose(fi);
    fclose(fo);
    return 0;
}