Cod sursa(job #2404699)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 13 aprilie 2019 12:08:44
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>
#include <algorithm>
#define t first
#define p second
#define INF 1000000000
 
using namespace std;
 
ifstream fin("carnati.in");
ofstream fout("carnati.out");
 
long long n,c,i,j,x,g,maxim,s;
pair<int, int> v[2005];
 
int main()
{
    fin >> n >> c;
    for (i=1; i<=n; i++)
        fin >> v[i].t >> v[i].p;
    sort(v+1, v+n+1);
      for (i=1; i<=n; i++)  {
        x = v[i].p;
        s = -1000000000;
        for (j=1; j<=n; j++) {
            if (x <= v[j].p)
                g = x;
            else
                g = 0;
            long long a = -(v[j].t-v[j-1].t)*1LL*c+g;
            long long b = g-c;
            if (s+a >= b)
                s += a;
            else
                s = b;
            maxim = max(maxim, s);
        }
    }
    fout << maxim;
    return 0;
}