Cod sursa(job #1518977)

Utilizator andreea_zahariaAndreea Zaharia andreea_zaharia Data 6 noiembrie 2015 17:22:32
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>
#include <climits>

const int NMAX = 6000010;

int N;

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

    int SUM, INC, SF;

    int MAXSUM, MAXINC, MAXSF;

    scanf ("%d%d", &N, &SUM);

    INC = SF = 1;

    MAXSUM = SUM;
    MAXINC = INC;
    MAXSF = SF;

    for (int i = 2; i <= N; i++) {
        int X;
        scanf ("%d", &X);

        if (SUM + X >= X) {
            SUM += X;
            SF = i;
        }
        else {
            SUM = X;
            INC = SF = i;
        }

        if (SUM > MAXSUM || (SUM == MAXSUM && INC < MAXINC)) {
            MAXSUM = SUM;
            MAXINC = INC;
            MAXSF = SF;
        }
    }

    printf ("%d %d %d\n", MAXSUM, MAXINC, MAXSF);

    return 0;
}