Cod sursa(job #1515726)

Utilizator MirceaAlexandruMircea Andrei-Alexandru MirceaAlexandru Data 2 noiembrie 2015 09:09:32
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <cstdio>
#include <algorithm>
using namespace std;


const int MaxN = 6000002 ;
long long S[MaxN] , v[MaxN] ;

int main()
{
    freopen ("ssm.in", "r", stdin);
    freopen ("ssm.out","w",stdout );
    long long i,indicemax,maxim,n;
    scanf ("%lld", &n);
    for(i=1; i<=n; i++) scanf ("%lld",&v[i]);
    S[1]=v[1];
    maxim=S[1];
    indicemax=0;
    for(i=1; i<=n ;i++)
    {
       S[i]=max(S[i-1]+v[i],v[i]);
       if(maxim<S[i])
       {
           maxim=S[i];
           indicemax=i;
       }
    }
    i=indicemax;
    while (S[i]>=0)
    {
        i--;
    }
    i++;
    printf ("%lld %lld %lld", maxim, i,indicemax);
    return 0;
}