Cod sursa(job #2714360)

Utilizator BOSSSTEFANPetrescu Ioan Stefan BOSSSTEFAN Data 1 martie 2021 18:32:47
Problema Carnati Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <algorithm>
using namespace std;
FILE *fin=fopen("carnati.in","r");
FILE *fout=fopen("carnati.out","w");
struct carnati
{
    long long t,p;
}v[2001];
bool cmp(carnati a, carnati b)
{
    if(a.t<b.t)
        return true;
    return false;
}
int main()
{
    long long n,c,i,j,max=-1,s,x;
    fscanf(fin,"%lld%lld",&n,&c);
    for(i=1;i<=n;i++)
    {
        fscanf(fin,"%lld%lld",&v[i].t,&v[i].p);
    }
    sort(v+1,v+n+1,cmp);
    for(i=1;i<=n;i++)
    {
        s=0;
        x=v[1].t-1;
        for(j=1;j<=n;j++)
        {
            if(s<0)
            {
                s=0;
                x=v[j].t-1;
            }
            if(v[j].p>=v[i].p)
                s+=v[i].p;
            s-=(v[j].t-x)*c;
            x=v[j].t;
            if(s>max)
                max=s;
        }
    }
    fprintf(fout,"%lld",max);
    return 0;
}