Cod sursa(job #1112074)

Utilizator valiro21Valentin Rosca valiro21 Data 19 februarie 2014 13:15:34
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>

using namespace std;

long n, x, prevS, s, prevInd, ind;
long sMax, sMaxInitialInd, sMaxFinalInd;

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

    scanf ( "%ld", &n );
    sMax = -999999;
    for ( long i = 1; i <= n; i++ ) {
        scanf ( "%ld", &x );
        if ( prevS + x >= x ) s = prevS + x, ind = prevInd;
        else s = x, ind = i;
        if ( s > sMax ) sMax = s, sMaxInitialInd = ind, sMaxFinalInd = i;
        prevS = s, prevInd = ind;
    }

    printf ( "%ld %ld %ld\n", sMax, sMaxInitialInd, sMaxFinalInd );

    return 0;
}