Cod sursa(job #2661913)

Utilizator goblinupufosPopescu Traian goblinupufos Data 22 octombrie 2020 21:50:56
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

int n;
int sir[6000006];

int main() {
    fin >> n;

    for (int i = 1; i <= n; ++i) {
        fin >> sir[i];
    }

    int suma = sir[1];
    int suma_max = suma;
    int inceput_max = 1, final = 1, inceput = 1;

    if (suma < 0) {
        suma = 0;
    }

    for (int i = 2; i <= n; ++i) {
        suma = suma + sir[i];

        if (suma > suma_max) {
            suma_max = suma;
            final = i;
            inceput_max = inceput;
        }

        if (suma < 0) {
            suma = 0;
            inceput = i + 1;
        }
    }

    fout << suma_max << " " << inceput_max << " " << final;

    return 0;
}