Cod sursa(job #1261983)

Utilizator flore77Simion Florentin flore77 Data 12 noiembrie 2014 21:34:39
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
using namespace std;

int main() {
    ifstream in("ssm.in");
    ofstream out("ssm.out");
    int n, *v, suma, maxim, i, beginIndex, lastIndex, bIndex, eIndex;
    in >> n;
    v = new int[n];
    for (i = 0; i < n; i++)
        in >> v[i];

    beginIndex = 0;
    lastIndex = 0;
    eIndex = 0;
    bIndex = 0;
    maxim = v[0];
    suma = v[0];

    for (i = 1; i < n; i++) {
        if (suma > 0) {
            suma += v[i];
            lastIndex = i;
        }
        else {
            suma = v[i];
            beginIndex = i;
            lastIndex = i;
        }
        if (suma > maxim) {
            maxim = suma;
            bIndex = beginIndex;
            eIndex = lastIndex;
        }
    }
    out << maxim << " " << bIndex + 1 << " " << eIndex + 1;
    in.close();
    out.close();
    return 0;
}