Cod sursa(job #2743780)

Utilizator pibogaBogdan piboga Data 23 aprilie 2021 15:07:51
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <cstdio>
#include <climits>

using namespace std;

const int INF = INT_MAX;


int main() {
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);

    int n;
    scanf("%d", &n);
    int sumGlobal = -INF, sumLocal = -INF;
    int startGlobal = 1, startLocal = 1, finishGlobal = 1, finishLocal = 1;

    int x;
    for (int i = 1; i <= n; ++i) {
        scanf("%d", &x);
        if (sumLocal < 0) {
            sumLocal = x;
            startLocal = i;
            finishLocal = i;
        } else {
            sumLocal += x;
            finishLocal = i;
        }
        if (sumLocal > sumGlobal) {
            sumGlobal = sumLocal;
            startGlobal = startLocal;
            finishGlobal = finishLocal;
        }
    }
    printf("%d %d %d", sumGlobal, startGlobal, finishGlobal);
    return 0;
}