Cod sursa(job #3354256)

Utilizator VleiuNastase Vlad Vleiu Data 17 mai 2026 01:45:49
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <vector>
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;
            continue;
        }
        if (dp[i] > dp[i-1]) {
            lastInd++;
        }
    }

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