Cod sursa(job #1478127)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 27 august 2015 22:41:01
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>

#define maxn 2010

using namespace std;

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

struct man
{
    int t,p;
}v[maxn];

int n,c,best;

bool cmp (man a, man b)
{
    return a.t < b.t;
}

int main()
{
    fin >> n >> c;
    for (int i = 1; i <= n; ++i)
    {
        fin >> v[i].t >> v[i].p;
    }

    sort(v+1, v+n+1, cmp);

    v[0].t = -1;

    for (int i = 1; i <= n; ++i)
    {
        int maxv = v[i].p;
        int currentBest = 0;

        for (int j = 1; j <= n; ++j)
        {
            int newGain = 0;
            if (v[j].p >= maxv)
                newGain = maxv;
            if (currentBest - c * (v[j].t - v[j-1].t - 1) > 0)
                currentBest += newGain - c * (v[j].t - v[j-1].t);
            else
                currentBest = newGain - c;
            best = max(best, currentBest);
        }
    }

    fout << best;
}