Cod sursa(job #2232946)

Utilizator mihailescu_eduardMihailescu Eduard-Florin mihailescu_eduard Data 21 august 2018 18:02:46
Problema Subsecventa de suma maxima Scor 100
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, v[NMAX], pref[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, left_aux = 0;
    for(int j = 1; j<= n; ++j)
    {
        if(pref[j] - mini > maxi)
        {
            maxi = pref[j] - mini;
            right = j;
            left = left_aux + 1;
        }
        if(pref[j] < mini)
        {
            mini = pref[j];
            left_aux = j;
        }
    }
    printf("%d %d %d",maxi,left,right);
}