Cod sursa(job #2506010)

Utilizator lucamLuca Mazilescu lucam Data 7 decembrie 2019 12:48:52
Problema Subsecventa de suma maxima Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <cstdio>
#include <algorithm>

const int NMAX = 6e6;
int ind[NMAX];
int s[NMAX];

int main(void)
{
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);
    int n, pozmax, x, indmax, smax;
    scanf("%d %d", &n, &x);
    s[0] = smax = x;
    ind[0] = 1;
    for (int i = 1; i < n; ++i) {
        scanf("%d", &x);
        if (s[i - 1] < 0)
            s[i] = x, ind[i - 1] = i;
        else
            s[i] = x + s[i - 1], ind[i - 1] = ind[i - 2];
        if (s[i] > smax)
            smax = s[i], pozmax = i, indmax = ind[i - 1];
    }
    printf("%d %d %d\n", smax, indmax + 1, pozmax + 1);
    fclose(stdin);
    fclose(stdout);
    return 0;
}