Cod sursa(job #2851428)

Utilizator Teodor11Posea Teodor Teodor11 Data 18 februarie 2022 17:16:22
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
using namespace std;

int n, l, r, maxSum, v[6000001], bestSum[6000001];

int main() {
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        bestSum[i] = max(v[i], v[i] + bestSum[i - 1]);
    }
    maxSum = bestSum[++r];
    for (int i = 2; i <= n; ++i) {
        if (maxSum < bestSum[i]) {
            maxSum = bestSum[i];
            r = i;
        }
    }
    l = r;
    while (l > 1 && bestSum[l - 1] >= 0) {
        --l;
    }
    fout << maxSum << ' ' << l << ' ' << r;
    return 0;
}