Cod sursa(job #3345486)

Utilizator Cosmin1605Damian Cosmin Cosmin1605 Data 9 martie 2026 19:29:24
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
#include <bits/stdc++.h>
using namespace std;

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

int main()
{
    int n;
    in >> n;

    vector<int> v(n + 1);

    for (int i = 1; i <= n; i++) {
        in >> v[i];
    }

    int dp_prev, dp_curent;
    int start_prev, start_curent, end_maxim;

    dp_prev = dp_curent = v[1];
    start_prev = 1;
    end_maxim = 1;

    int ssm = dp_curent;
    for (int i = 2; i <= n; i++) {
        start_curent = i;
        if (dp_prev >= 0) {
            dp_curent = dp_prev + v[i];
            start_curent = start_prev;
        } else {
            dp_curent = v[i];
        }

        if (dp_curent > ssm) {
            ssm = dp_curent;
            end_maxim = i;
        }

        start_prev = start_curent;
        dp_prev = dp_curent;
    }

    out << ssm << " " << start_curent << " " << end_maxim;

    in.close();
    out.close();

    return 0;
}