Cod sursa(job #3261263)

Utilizator 0021592Grecu rares 0021592 Data 4 decembrie 2024 22:44:38
Problema Carnati Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <fstream>
#include <algorithm>
#include <set>
#define int long long
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");
int n, t[2010], p[2010], tMAX, c, mx, i, v[1510], dp;
set <int> x;
int check(int k)
{
    int f = 0, dp = 0;
    for (i = 0; i <= tMAX; i++)
        v[i] = -c;
    for (i = 1; i <= n; i++)
        v[t[i]] += k * (k <= p[i]);
    for (i = 1; i <= tMAX; i++)
    {
        dp = max(dp+v[i], v[i]);
        f = max(f, dp);
    }
    return f;
}
int32_t main()
{
    in >> n >> c;
    for (i = 1; i <= n; i++)
    {
        in >> t[i] >> p[i];
        tMAX = max(tMAX, t[i]);
        x.insert(max(0ll, p[i]));
    }
    for (auto ind : x)
        mx = max(mx, check(ind));
    out << mx;
    return 0;
}