Cod sursa(job #1692778)

Utilizator TudorVersoiuVersoiu Tudor Sorin TudorVersoiu Data 21 aprilie 2016 17:15:23
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <algorithm>
#include <iostream>
#include <fstream>

using namespace std;
ifstream f("ssm.in" );
ofstream g("ssm.out");

int v[6000006], sum[6000006], BEST = -1000000, START, END, N, idx, minSum;



int main() {
    f >> N;

    for ( int i=1 ; i<=N ; i++ )
        f >> v[i];


    for ( int i=1 ; i<=N ; i++ )
        sum[i] = sum[i-1] + v[i];

    for ( int i=1 ; i<=N ; i++ ) {
        if ( sum[i] - minSum  > BEST ) BEST = sum[i] - minSum, START = idx, END = i;
        if ( minSum > sum[i] ) minSum = sum[i], idx = i;
    }

    g << BEST << ' ' << START+1 << ' ' << END;
}