Cod sursa(job #3283943)

Utilizator _andr31Rusanescu Andrei-Marian _andr31 Data 10 martie 2025 18:43:53
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");
    int n;
    fin >> n;
    vector<int> v(n);
    vector<int> s(n);
    
    for (int i = 0; i < n; ++i)
        fin >> v[i];
    int maxx = v[0], end = n, start = 1, i, len = n;
    s[0] = v[0];
    for (i = 1; i < n; ++i) {
        if (s[i-1] + v[i] < v[i]) {
            s[i] = v[i];
            start = i + 1;
        } else {
            s[i] = s[i-1] + v[i];
        }
        if (s[i] > maxx) {
            maxx = s[i];
            end = i + 1;
            len = end - start;
        }
    }

    fout << maxx << " " << end - len << " " << end;
    return 0;
}