Cod sursa(job #3335407)

Utilizator David_RadavoiRadavoi David Alexandru David_Radavoi Data 22 ianuarie 2026 16:57:16
Problema Carnati Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

#define NMAX 2000

struct carnat{
    int t, p;
}v[NMAX + 1];

bool cmp(carnat a, carnat 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, cmp);
    int smax = 0;
    for (int i = 1; i <= N; i++){
        int sum = 0, reset = 0;
        for (int j = 1; j <= N; j++){
            if (reset == 1){
                sum -= (v[j].t - v[j - 1].t) * C;
            }
            else{
                sum -= C;
            }
            sum = max(sum, 0);
            reset = 1;
            if (v[i].p <= v[j].p){
                sum += v[i].p;
            }
            if (sum == 0){
                reset = 0;
            }
            smax = max(sum, smax);
        }
    }
    fout << smax;
    return 0;
}