Cod sursa(job #3361425)

Utilizator anavintilaAna Vintila anavintila Data 24 iulie 2026 11:27:43
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <algorithm>

using namespace std;

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

struct tip {

    int pret, timp;
};
tip v[2001];

bool cmp (tip a, tip b) {

    return a.timp < b.timp;
}

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

    for (int i = 0;i<n;i++) {

        fin>>v[i].timp>>v[i].pret;
    }

    sort(v, v+n, cmp);
    long long mx = 0;
    for (int k = 0;k<n;k++) {

        int p = v[k].pret;
       long long sum = 0;

        for (int i = 0;i<n;i++) {

            int g_i;
            if (v[i].pret >= p) {

                g_i = p;
            }
            else {

                g_i = 0;
            }
            if (i == 0 || g_i - c > sum + g_i - 1LL*c*(v[i].timp - v[i-1].timp)) {

                sum = g_i-c;
            }
            else {

                sum = sum + g_i - 1LL*c*(v[i].timp - v[i-1].timp);
            }
            mx = max(sum, mx);
        }
    }

    fout<<mx;
    return 0;
}