Cod sursa(job #2051063)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 28 octombrie 2017 14:59:44
Problema Carnati Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>

using namespace std;

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

int n, c, last, i, w ;
int t[2005], p[2005];
long long s, maxim, care;

int main() {
    f >> n >> c;

    for (i = 1; i <= n; i++)
        f >> t[i] >> p[i];

    for (w = 1; w <= n; w++) {
        last = 0;
        s = -c;
        for (i = 1; i <= n; i++) {
            if (p[i] >= p[w]) {
                if (s+p[w]-c*(t[i]-t[last]) >= p[w]-c)
                    s += p[w]-c*(t[i]-t[last]);
                else s = p[w]-c;
                if (s > maxim)
                    maxim = s, care = p[w];
                last = i;
            }
        }
    }
    g << maxim;
}