Cod sursa(job #640681)

Utilizator AlexandruSolotAlexandru Solot AlexandruSolot Data 26 noiembrie 2011 12:04:24
Problema Subsecventa de suma maxima Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <stdio.h>

using namespace std;
int a[6000005], ind[6000005], bst[6000005];
int main()
{
    int i, imax, jmax, n, smax=0;
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    cin>>n;
    for(i=1; i<=n; i++)
        cin>>a[i];

   for(i=1; i<=n; i++)
        {
            if(a[i]<bst[i-1]+a[i])  bst[i]=bst[i-1]+a[i], ind[i]=ind[i-1];
             else bst[i]=a[i], ind[i]=i;

        }
    for(i = 1; i <= n; i++)
        if(bst[i]>smax) {smax=bst[i]; imax=ind[i]; jmax=i;}

    cout<<smax<<" "<<imax<<" "<<jmax;
    return 0;
}