Cod sursa(job #2850523)

Utilizator Teodor11Posea Teodor Teodor11 Data 16 februarie 2022 21:34:37
Problema Subsecventa de suma maxima Scor 95
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[6000000], bestSum[6000000];

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