Cod sursa(job #2750326)

Utilizator Iulia_DianaIulia Diana Iulia_Diana Data 10 mai 2021 19:44:35
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb

#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
struct carnati
{
    int t, p;
}v[2005];
int cond(carnati a, carnati b)
{
    return a.t<b.t;
}
int main()
{
    int n, c;   fin >> n >> c;
    for(int i=1; i<=n; i++)
        fin >> v[i].t >> v[i].p;
    sort(v+1, v+n+1, cond);
//    for(int i=1; i<=n; i++)
//        fout << v[i].t << " " << v[i].p << "\n";
    int MAX=0;
    for(int i=1; i<=n; i++)
    {
        //setez pret ca fiind v[i].p;
        int maxant=0, maxc, pret=v[i].p, antp=0;
        for(int j=1; j<=n; j++)
            if(v[j].p>=pret)
            {
                if(antp==0)  maxc=max(maxant-c+pret, pret-c);
                else  maxc=max(maxant-(v[j].t-v[antp].t)*c+pret, pret-c);
                maxant=maxc;
                antp=j;
                MAX=max(MAX, maxc);
            }
    }
    fout << MAX;
    return 0;
}