Cod sursa(job #2232816)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 21 august 2018 11:25:22
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>

FILE *fin = freopen("ssm.in","r",stdin); FILE *fout = freopen("ssm.out","w",stdout);

const int NMAX = 6000000 + 5;

/* ----------- DATA ------------- */
int n, pref[NMAX], v[NMAX];
/* ----------- DATA ------------- */

int main()
{
    scanf("%d",&n);
    for(int i =1; i<= n; i++)
    {
        scanf("%d",&v[i]);
        pref[i] = pref[i-1] + v[i];
    }
    int mini = 0, maxi = - 2000000000, left, right, id_mini = 0;
    for(int i = 1; i<= n; i++)
    {
        if(pref[i] < mini)
        {
            mini = pref[i];
            id_mini = i;
        }
        if(pref[i] - mini > maxi)
        {
            maxi = pref[i] - mini;
            right = i;
            left = id_mini + 1;
        }
    }
    printf("%d %d %d", maxi, left, right);
}