Cod sursa(job #2849783)

Utilizator Teodor11Posea Teodor Teodor11 Data 15 februarie 2022 19:30:52
Problema Subsecventa de suma maxima Scor 5
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
using namespace std;

int n, st, dr, v[6000001], s[6000001];

int main() {
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    fin >> n;
    for (int i = 1; i <= n; ++i) {
        fin >> v[i];
        s[i] = s[i - 1] + v[i];
        v[0] = min(s[0], s[i]);
    }
    for (int i = n; i > 0; --i) {
        if (v[0] < s[i] || v[0] == s[i] && v[i] >= v[dr]) {
            v[0] = s[i];
            dr = i;
        }
    }
    st = dr;
    while (st > 1 && s[st - 1] > 0) {
        --st;
    }
    fout << s[dr] - s[st - 1] << ' ' << st << ' ' << dr;
    return 0;
}