Cod sursa(job #3354257)

Utilizator VleiuNastase Vlad Vleiu Data 17 mai 2026 01:54:34
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int n;
vector<int> dp;
vector<int> elements;

int main(void) {
    cin >> n;
    dp.assign(n + 1, 0);
    elements.resize(n + 1);

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

    dp[1] = elements[1];
    int firstInd = 1;
    int lastInd = 1;

    for (int i = 2; i < n + 1; i++) {
        dp[i] = max(elements[i], dp[i-1] + elements[i]);
        if (elements[i] > dp[i-1] + elements[i]) {
            firstInd = i;
            lastInd = i;
        } else {
            lastInd++; 
            if (i == n)
                lastInd--;
        }
    }

    cout << *max_element(dp.begin() + 1, dp.end()) << " " << firstInd << " " << lastInd;
}