Cod sursa(job #1397304)

Utilizator EpictetStamatin Cristian Epictet Data 23 martie 2015 13:26:01
Problema Carnati Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin ("carnati.in");
ofstream fout ("carnati.out");
int N, Sal_Zi, Pret_Produs, val, maxim;
pair < int, int > V[2010];

int main()
{
    fin >> N >> Sal_Zi;
    for (int i = 1; i <= N; i++) {
        fin >> V[i].first >> V[i].second;
    }
    sort (V + 1, V + 1 + N);

    for (int i = 1; i <= N; i++)
    {
        Pret_Produs = V[i].second;
        val = 0;
        for (int j = 1; j <= N; j++)
        {
            val = max ((V[j].second >= Pret_Produs ? Pret_Produs : 0) - (V[j].first - V[j-1].first) * Sal_Zi + val,
                       (V[j].second >= Pret_Produs ? Pret_Produs : 0) - Sal_Zi);
            if (val > maxim) maxim = val;
        }
    }

    fout << maxim << '\n';
    fout.close();
    return 0;
}