Cod sursa(job #1075728)

Utilizator corina.ioanaSerbanescu Corina corina.ioana Data 9 ianuarie 2014 15:17:47
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <cstdio>

using namespace std;
int a[6000000],best[6000000],bestsum,i,n,I,m;
int main ()
{
    freopen ("ssm.in","r",stdin);
    freopen ("ssm.out","w",stdout);

    scanf ("%d", &n);
    for (i=1; i<=n; i++)
    {
        scanf ("%d", &a[i]);
    }
    bestsum = -2000000  ;
    for (i = 1; i <= n; ++ i)
    {
        best[i] = a[i];
        if (best[i] < best[i-1] + a[i])
            best[i] = best[i-1] + a[i];
        if (bestsum <= best[i])
        {
             bestsum = best[i];
             I=i;
        }

    }
    m=I;
    printf("%d ", bestsum);
    while (bestsum!=0)
    {
        bestsum-=a[I];
        I--;
    }
    while (a[I]==0) I--;
    printf ("%d %d", I+1, m);


    return 0;
}