Cod sursa(job #3361473)

Utilizator ciupitunicolasCiupitu Nicolas ciupitunicolas Data 24 iulie 2026 16:20:48
Problema Carnati Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <fstream>
#include <algorithm>
using namespace std;

ifstream cin("carnati.in");
ofstream cout("carnati.out");

struct om{
    int t, p;
};

om v[2005];

bool cmp(om a, om b){
    if(a.t < b.t)
        return true;
    else
        return false;
}

int main() {
    int n, c, s = 0, maxim = -2000000000, scadere;
    cin >> n >> c;
    bool newstart = true;
    for(int i = 1; i <= n; i++){
        cin >> v[i].t >> v[i].p;
    }
    sort(v+1, v+n+1, cmp);
    for(int i = 1; i <= n; i++){
        s = 0;
        scadere = c;
        newstart = true;
        for(int j = 1; j <= n; j++){
            if(newstart != true)
                scadere = (v[j].t - v[j-1].t)*c;
            else
                scadere = c;
            newstart = false;
            s -= scadere;
            if(v[j].p >= v[i].p)
                s+=v[i].p;
            if(s > maxim)
                maxim = s;
            if(s < 0){
                s = 0;
                newstart = true;
            }
        }
    }
    cout << maxim;
    return 0;
}