Cod sursa(job #2321221)

Utilizator Dragne.Andrei11Dragne Andrei Dragne.Andrei11 Data 15 ianuarie 2019 20:36:59
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
#define nmax 2005

using namespace std;

pair <int, int> v[nmax];
int n, c;

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

int main()
{
    freopen("carnati.in", "r", stdin);
    freopen("carnati.out", "w", stdout);

    scanf("%d%d", &n, &c);
    for(int i=1;i<=n;i++)
        scanf("%d %d", &v[i].first, &v[i].second);
    sort(v+1, v+n+1);
    int sum_max=0;
    for(int i=1;i<=n; i++)
        sum_max = max(sum_max, sume(v[i].second));
    printf("%d\n", sum_max);

    return 0;
}