Cod sursa(job #3335385)

Utilizator EricMartinmartin petru eric EricMartin Data 22 ianuarie 2026 16:41:01
Problema Carnati Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb

#include <fstream>
#include <algorithm>
using namespace std;

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

struct a
{
    int intrare,val;
}v[2001];

int cmp (a A , a B)
{
    return A.intrare < B.intrare;
}

int main()
{
    int n,p;
    cin >>n>>p;
    for (int i = 1; i <= n; i++)
    {
        cin >>v[i].intrare>>v[i].val;
    }
    sort (v + 1 , v + n + 1 , cmp);
    long long smax = 0;
    v[0].intrare = v[1].intrare;
    for (int i = 1; i <= n; i++)
    {
        int s = 0;
        for (int j = 1; j <= n; j++)
        {
            if (s < 0)
                s = 0;
            if (v[j].val > v[i].val)
            {
                s += v[i].val;
            }
            if (s > smax)
                smax = s;
            s -= (v[j].intrare - v[j - 1].intrare) * p;
        }
    }
    cout <<smax - p;
    return 0;
}