Cod sursa(job #1461009)

Utilizator Maria98BMaria Monica Maria98B Data 14 iulie 2015 15:57:23
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>

using namespace std;

int x[6000001];

int main()
{
    ifstream fin ( "ssm.in" );
    ofstream fout ( "ssm.out" );
    int n, sc, ic, smax, im, sfm;

    fin >> n;

    for ( int i=1; i<=n; i++ ) fin >> x[i];

    sc = smax = x[1];
    ic = im = sfm;

    for ( int i=2; i<=n; i++ ) {
        if ( sc + x[i] < x[i] ) {
            sc = x[i];
            ic = i;
        }
        else
        sc = sc + x[i];

        if ( sc > smax ) {
            smax = sc;
            im = ic;
            sfm = i;
        }
    }

    fout << smax << " " << im << " " << sfm;

    return 0;
}