Cod sursa(job #2223433)

Utilizator Moise_AndreiMoise Andrei Moise_Andrei Data 20 iulie 2018 11:52:37
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");
pair <int, int> v[2005];
int p[2005];
int n, c;
int f(int a)
{
    int mx = 0, s = 0;
    for(int i = 1; i <= n; i++)
    {
        s = max(s - (v[i].first - v[i-1].first) * c, 0);
        if(a <= v[i].second)
            s += a;
        mx = max(mx, s - c);
    }
    return mx;
}
int main()
{
    in >> n >> c;
    for(int i = 1; i <= n; i++)
        in >> v[i].first >> v[i].second;
    sort(v + 1, v + n + 1);
    int mx = 0;
    for(int i = 1; i <= n; i++)
        mx = max(mx, f(v[i].second));
    out << mx;
    return 0;
}