Cod sursa(job #2798719)

Utilizator mediocrekarmaChirvasa George Matei mediocrekarma Data 11 noiembrie 2021 19:28:29
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
#include <array>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");

int main() {
    const int N_MAX = 6000000;
    array<int, N_MAX> v;
    int n, maxVal = INT_MIN, currMax = 0, iMax = 0, jMax = 0, start = 0;
    fin >> n;
    for (int i = 0; i < n; ++i) {
        fin >> v[i];
    }
    for (int i = 0; i < n; ++i) {
        currMax += v[i];
        if (currMax > maxVal) {
            maxVal = currMax;
            iMax = start;
            jMax = i;
        }
        if (currMax < 0) {
            currMax = 0;
            start = i + 1;
        }
    }
    fout << maxVal << ' ' << iMax + 1 << ' ' << jMax + 1;
}