Cod sursa(job #2807182)

Utilizator paul911234vaida paul paul911234 Data 23 noiembrie 2021 15:46:01
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;

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

const int SIZE_N = 6000001;

int n, sp[SIZE_N];

int main() {
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> sp[i];
    }
    int begin = 1, end = 1, valMin = 0, pos = 0, sum = sp[1];
    for (int i = 1; i <= n; ++i) {
        sp[i] = sp[i - 1] + sp[i];
        if (sp[i] - valMin > sum) {
            sum = sp[i] - valMin, begin = pos + 1, end = i;
        }
        if (sp[i] < valMin) {
            valMin = sp[i], pos = i;
        }
    }
    fout << sum << ' ' << begin << ' ' << end;
}