Cod sursa(job #282091)

Utilizator silvia_the_bestSilvia Pripoae silvia_the_best Data 16 martie 2009 20:57:09
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <cstdio>
#define FIN "ssm.in"
#define FOUT "ssm.out"
#define N 6000010
#define INF 2000000000

int n, fmax, lmax, maxsum = -INF;

void solve()
{
    int x, sc, first, last;
    freopen(FIN, "r", stdin);

    scanf("%d", &n);

    sc = 0;

    first = last = 0;

    for (int i = 1; i <= n; ++i)
    {
        scanf("%d", &x);
        sc += x;
        ++ last;
        if (sc > maxsum)
        {
            fmax = first;
            lmax = last;
            maxsum = sc;
        }
        if (sc < 0)
        {
            sc = 0;
            first  = i + 1;
        }
    }
}

void write()
{
    freopen(FOUT, "w", stdout);
    printf("%d %d %d\n", maxsum, fmax, lmax);
}

int main()
{
    solve();

    write();
}