Cod sursa(job #3324269)

Utilizator stefan_ciureaStefan Ciurea stefan_ciurea Data 21 noiembrie 2025 20:53:46
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

const int Nmax=2005;

struct om{
    int t,p;
} v[Nmax];

bool cmp(om i1, om i2) {
    return i1.t<i2.t;
}

int main()
{
    ifstream fin("carnati.in");
    ofstream fout("carnati.out");
    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);
    v[0].t=v[1].t;
    int sol=0;
    for (int i=1; i<=n; ++i) {
        int pret=v[i].p,sum=0;
        for (int j=1; j<=n; ++j) {
            sum-=(v[j].t-v[j-1].t)*c;
            sum=max(sum,0);
            if (v[j].p>=pret) sum+=pret;
            sol=max(sol,sum);
        }
    }
    fout<<sol-c;
    fin.close();
    fout.close();
    return 0;
}