Cod sursa(job #3355337)

Utilizator TODEToderita Mihai TODE Data 22 mai 2026 15:58:05
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <vector>

using namespace std;

vector<int> v;
vector<int> dp;

int main(void) {
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");

    int n;

    fin >> n;

    v.resize(n);
    dp.assign(n, 0);

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

    dp[0] = v[0];

    for (int i = 1; i < n; i++) {
        dp[i] = max(v[i], dp[i - 1] + v[i]);
    }

    int max_index = 0;

    for (int i = 0; i < n; i++) {
        if (dp[max_index] < dp[i]) max_index = i;
    }

    int min_index = max_index;

    while (min_index >= 1 && dp[min_index] - v[min_index] == dp[min_index - 1]) {
        min_index--;
    }

    fout  << dp[max_index] << ' ' << min_index + 1 << ' ' << max_index + 1;

    return 0;
}