Cod sursa(job #2293147)

Utilizator Vladi.BarasBaras Nicholas Vladimir Laurentiu Vladi.Baras Data 30 noiembrie 2018 16:37:29
Problema Carnati Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <cstdio>

using namespace std;

const int NMAX=2000;
struct sausage
{
    int ora;
    int pt;
};
sausage v[NMAX+1];
int n,c;
long long Smax=-1;
void ssm(int a)
{
    long long smax=-1,sc=0;
    int i, p1,p,p2;
    for(i=1; i<=n; i++)
    {
        if((v[i].ora-v[i-1].ora-1)*c>sc)
        {
            sc=0;
        }
        else
        {
            sc-=(v[i].ora-v[i-1].ora-1)*c;
        }
        sc+=(v[i].pt>=a?a:0)-c;
        if(sc>smax)
        {
            smax=sc;
        }
    }
    if(smax>Smax)
    {
        Smax=smax;
    }
}
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].ora,&v[i].pt);
    }
    for(int i=1; i<=n; i++)
    {
        ssm(v[i].pt);
    }
    printf("%d\n",Smax);
    return 0;
}