Cod sursa(job #2516861)

Utilizator mirceamaierean41Mircea Maierean mirceamaierean41 Data 2 ianuarie 2020 15:07:29
Problema Carnati Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>

using namespace std;

ifstream fin("carnati.in");
ofstream fout("carnati.out");

const int NMAX = 2001;

long long max(long long a, long long b)
{
    return (a > b) ? a : b;
}

long long min(long long a, long long b)
{
    return (a < b) ? a : b;
}

struct carnati
{
    long long t, p;
};

carnati a[NMAX];

long long n, c, maxi;

int main()
{
    fin >> n >> c;

    for (int i = 1; i <= n; ++i)
        fin >> a[i].t >> a[i].p;

    for (int i = 1; i <= n; ++i)
    {
        int ant = 0;
        for (int j = 1; j <= n; ++j)
        {
            int g = 0;

            if (a[j].p >= a[i].p) g = a[i].p;

            int cr = ant - (a[j].t - a[j - 1].t) * c + g;

            if (cr < g - c) cr = g - c;

            maxi = (cr > maxi) ? cr : maxi;

            ant = cr;
        }
    }

    fout << maxi << "\n";
    return 0;
}