Cod sursa(job #3335394)

Utilizator RaduPaunTrifRadu Paun Trif RaduPaunTrif Data 22 ianuarie 2026 16:49:27
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;

#define int long long

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

const int MXN = 2e3;
const int MXTi = 1500;

struct Client {
    int t, p;
};

Client v[MXN + 1];

int n;
int c;

bool cmp(Client A, Client B) {
    return A.t < B.t;
}

signed main()
{
    in >> n >> c;
    for(int i = 1; i <= n; ++i)
        in >> v[i].t >> v[i].p;
    sort(v + 1, v + 1 + n, cmp);
    int maxim = 0, fixat;
    int suma;
    for(int z = 1; z <= n; ++z) {
        fixat = v[z].p;
        suma = 0;
        v[0].t = v[1].t;
        for(int i = 1; i <= n; ++i){
            suma -= (v[i].t - v[i - 1].t) * c;
            if(suma < 0)
                suma = 0;
            if(v[i].p >= fixat)
                suma += fixat;
            maxim = max(maxim, suma);
        }
    }
    maxim -= c;
    out << maxim << '\n';
    return 0;
}