Cod sursa(job #1397253)

Utilizator EpictetStamatin Cristian Epictet Data 23 martie 2015 13:05:28
Problema Carnati Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <fstream>
using namespace std;
ifstream fin ("carnati.in");
ofstream fout ("carnati.out");
typedef struct { int t, p; } art;
int N, Sal_Zi, Pret_Produs, timp, val, maxim;
art V[2010];

int main()
{
    fin >> N >> Sal_Zi;
    for (int i = 1; i <= N; i++) {
        fin >> V[i].t >> V[i].p;
    }

    for (int i = 1; i <= N; i++)
    {
        Pret_Produs = V[i].p;
        val = 0;
        timp = V[1].t;
        for (int j = 1; j <= N; j++)
        {
            val = val + (V[j].p >= Pret_Produs ? Pret_Produs : 0) - (V[j].t - timp + 1) * Sal_Zi;
            if (val < 0)
            {
                val = 0;
                timp = V[j+1].t;
            }
            else
            {
                if (val > maxim) maxim = val;
                timp = V[j].t + 1;
            }
        }
    }

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