Cod sursa(job #3335392)

Utilizator EricRaiaEricRaia EricRaia Data 22 ianuarie 2026 16:48:44
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <algorithm>
#define int long long

using namespace std;

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

int n,c,ans,s,pp;

struct ura
{
    int t,p;
};
bool c67(ura u, ura d)
{
    if(u.t!=d.t)
        return u.t<d.t;
    return u.p<d.t;
}

signed main()
{
    cin>>n>>c;
    vector<ura> v(n);
    for(int i=0;i<n;i++)
        cin>>v[i].t>>v[i].p;
    sort(v.begin(), v.end(), c67);
    ans=-1000005;
    for(int i=0;i<n;i++){
        s=0;
        pp=-1000005;                     ///precipitat alb-laptos
        for(int j=0;j<n;j++){
            if(j>=1)
                s=s-((v[j].t-v[j-1].t)*c);
            if(s<0)
                s=0;
            if(v[j].p>=v[i].p)
                s+=v[i].p;
            pp=max(pp, s);
        }
        ans=max(pp-c, ans);
    }
    cout<<ans;

    return 0;
}