Cod sursa(job #2706304)

Utilizator AnnaLipianuLipianu Ana AnnaLipianu Data 14 februarie 2021 15:52:21
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
pair <int, int> v[ 2001];
int p[1501];
int main()
{
    ifstream in("carnati.in");
    ofstream out("carnati.out");
    int n,c;
    int max=0;
    in >> n >> c;
    for (int i = 1; i <= n; i++)
        in >> v[i].first >> v[i].second;
    sort(v + 1, v + 1 + n);
    int t_max = v[n].first;
    for (int i = 1; i <= n; ++i)
    {
       int pret=v[i].second;
       memset(p, 0, sizeof(p));
       for (int j = 1; j <= n; j++)
       if (v[j].second >= pret)
           p[v[j].first] += pret;
       p[0] -= c;
       for (int t = 1; t <= t_max; t++)
         p[t]+=p[t - 1]-c;
       int min = 0;
       for (int t = 0; t <= t_max; t++)
       {
         if (min > p[t])
           min = p[t];
         if (max < p[t] - min)
           max = p[t] - min;

       }
    }

    out << max;

    return 0;
}