Cod sursa(job #1193474)

Utilizator ZenusTudor Costin Razvan Zenus Data 31 mai 2014 20:47:07
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>
#include <climits>

using namespace std;

#define NMAX 6000001

int A[NMAX];
int best,finish,start,finishI,startI,i,N,sol;

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

scanf("%d%d",&N,&A[1]);
A[N+1]=INT_MAX;

sol=best=A[1];
finish=start=finishI=startI=1;
for (i=2;i<=N+1;++i)
{
    if (i<=N)
    scanf("%d",&A[i]);

    if (best>sol)
    {
        sol=best;
        startI=start;
        finishI=finish;
    }

    if (best<0)
    {
        start=finish=i;
        best=A[i];
        continue ;
    }

    if (best>=0)
    {
        ++finish;
        best+=A[i];
    }
}

printf("%d %d %d\n",sol,startI,finishI);

return 0;
}