Cod sursa(job #3324476)

Utilizator RosaSofianRosa Sofian RosaSofian Data 22 noiembrie 2025 11:13:25
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <fstream>
#include <algorithm>
using namespace std;

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

const int dim= 2e3+ 5;
struct ura
{
    int t, p;
}v[dim];

bool cmp(ura a, ura b){
    return a.t < b.t;
}

int main()
{
    int i, n, c, j;
    cin >> n>> c;

    for(i= 1;i <= n;i++){
        cin >> v[i].t>> v[i].p;
    }

    sort(v+ 1, v+ 1+ n, cmp);

    /*for(i= 1;i <= n;i++)
        cout << v[i].t<<" "<< v[i].p<< endl;
    cout << endl<< endl;*/

    int maxi= -1;
    v[0].t= v[1].t;
    for(i= 1;i <= n;i++){
        //cout << "i= "<< i<< endl;
        int pret= v[i].p, sum= 0;
        for(j= 1;j <= n;j++){
            sum-= (v[j].t- v[j- 1].t)* c;
            sum= max(0, sum);
            if(v[j].p >= pret)
                sum+= pret;
            //cout << j<<" "<< sum<< endl;
            maxi= max(maxi, sum);
        }
        //cout << endl<< endl;
    }

    cout << maxi- c;


    return 0;
}