Cod sursa(job #1815771)

Utilizator TopiAlexTopala Alexandru TopiAlex Data 25 noiembrie 2016 19:16:36
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>
#define INFINIT (1 << 31) - 1

int n;

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

    scanf("%d", &n);

    int first;

    scanf("%d", &first);

    int s = first;
    int sMax = first;
    int begS = 1;
    int endS = 1;
    int auxBeg = 1;
    int nr;

    for (int i = 2; i <= n; ++i) {
        scanf("%d", &nr);
        if (s < 0) { // daca suma este negativa, nu are rost sa continuam secventa actuala, rin urmare incepem una nou
            s = nr;
            auxBeg = i;
        } else {
            s += nr;
        }

        if (s > sMax) {
            sMax = s;
            begS = auxBeg;
            endS = i;
        }
    }

    printf("%d %d %d\n", sMax, begS, endS);

    return 0;
}