Cod sursa(job #1674065)

Utilizator CraiuAndrei Craiu Craiu Data 4 aprilie 2016 12:42:12
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

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

int n, c, sol;

pair <int, int> a[2005];

int Rezolva(int x)
{
    int sol, s, i;
    sol = s = 0;
    for(i = 1 ; i <= n ; i++)
    {
        s = s - c * (a[i].first - a[i - 1].first);
        if(s < 0) s = 0;
        if(a[i].second >= x)
            s = s + x;
        sol = max(sol , s - c);
    }
    return sol;
}

int main()
{
    int i;
    fin >> n >> c;
    for(i = 1; i <= n; i++)
        fin >> a[i].first >> a[i].second;
    sort(a + 1, a + 1 + n);
    for(i = 1; i <= n; i++)
        sol = max(sol, Rezolva(a[i].second));
    fout << sol << "\n";
    fin.close();fout.close();
    return 0;
}