Cod sursa(job #2324693)

Utilizator moltComan Calin molt Data 21 ianuarie 2019 12:48:08
Problema Carnati Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>

using namespace std;

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

struct carnati {
    int t; int p;

    bool operator< (const carnati& altul) const  {
        return t < altul.t;
    };
} v[2005];
int n,C;

int main() {
    in>>n>>C;
    for (int i = 1; i <= n; ++i)
        in>>v[i].t>>v[i].p;
    sort(v + 1,v + n + 1);
    int rez = - (1<<20);
    for (int i = 1; i <= n; ++i) {
        int summax = -(1<<20);
        int pret = v[i].p, profit = 0;
        for (int j = 1; j <= n; ++j) {
            int castig = 0;
            if (pret <= v[j].p)
                castig = pret;
            profit = max(profit - (v[j].t - v[j-1].t)*C + castig,castig - C);
            summax = max(summax,profit);
        }
        rez = max(rez,summax);
    }
    out<<"\n\n\n"<<rez;
    return 0;
}