Cod sursa(job #2835609)

Utilizator Cata_TTaslaoanu Catalina Cata_T Data 18 ianuarie 2022 22:46:16
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("carnati.in");
ofstream fout ("carnati.out");
struct f
{
    int timp, pret;
};
f v[2010];
bool cmp(f a,f b)
{
    if(a.timp<b.timp)
        return true;
    else
        return false;
}
int main()
{
    int n, c, i, j, pret, s, maxx, maxim=-1000000000;
    fin>>n>>c;
    for(i=1; i<=n; i++)
        fin>>v[i].timp>>v[i].pret;
    sort (v+1,v+n+1,cmp);
    for(i=1; i<=n; i++)
    {
        pret=v[i].pret;
        s=0;
        maxx=-1000000000;
        for(j=1; j<=n; j++)
        {
            if(j>1)
                s=s-(v[j].timp-v[j-1].timp)*c;
            if(s<0)
                s=0;
            if(v[j].pret>=pret)
                s=s+pret;
            if(s>maxx)
                maxx=s;
        }
        if(maxx-c>maxim)
            maxim=maxx-c;
    }
    fout<<maxim;
    return 0;
}