Cod sursa(job #2282890)

Utilizator PredescuSebastianIonPredescu Sebastian Ion PredescuSebastianIon Data 14 noiembrie 2018 18:19:42
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("carnati.in");
ofstream g("carnati.out");
long long i,j,n,salariu,x,c,s;
struct ceva
{
    int timp,pret;
}a[2002];
int cmp(ceva a,ceva b)
{
    return a.timp<b.timp;
}
int main()
{
    f>>n>>salariu;
    for(i=1;i<=n;i++)
    {
        f>>a[i].timp>>a[i].pret;
    }
    sort(a+1,a+n+1,cmp);
    long long sol=-2000000000000000;
    for(i=1;i<=n;i++)
    {
        x=a[i].pret;
        if(a[1].pret<x)
        {
            s=-salariu;
        }
        else
        {
            s=x-salariu;
        }
        sol=max(sol,s);
        for(j=2;j<=n;j++)
        {

            if(a[j].pret>=x)
            {
                c=x;
            }
            else
            {
                c=0;
            }
            if(s+c-(a[j].timp-a[j-1].timp)*salariu>c-salariu)
            {
                s=s+c-(a[j].timp-a[j-1].timp)*salariu;
            }
            else
            {
                s=c-salariu;
            }
            sol=max(s,sol);

        }
    }
    g<<sol<<'\n';
    return 0;
}