Cod sursa(job #2743976)

Utilizator pibogaBogdan piboga Data 23 aprilie 2021 19:12:29
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <climits>

using namespace std;

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

const int INF = INT_MAX;

int main() {
    int n;
    fin >> n;
    int sumGlobal = -INF, sumLocal = -INF;
    int startGlobal = 1, startLocal = 1, finishGlobal = 1, finishLocal = 1;

    int x;
    for (int i = 1; i <= n; ++i) {
        fin >> x;
        if (sumLocal < 0) {
            sumLocal = x;
            startLocal = i;
            finishLocal = i;
        } else {
            sumLocal += x;
            finishLocal = i;
        }
        if (sumLocal > sumGlobal) {
            sumGlobal = sumLocal;
            startGlobal = startLocal;
            finishGlobal = finishLocal;
        }
    }

    fout << sumGlobal << " " << startGlobal << " " << finishGlobal;

    return 0;
}