Cod sursa(job #2892688)

Utilizator mihnea.tTudor Mihnea mihnea.t Data 23 aprilie 2022 10:54:09
Problema Subsecventa de suma maxima Scor 65
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

int main(void) {
    freopen("ssm.in", "rt", stdin);
    freopen("ssm.out", "wt", stdout);

    int n;
    cin >> n;

    vector<int> v;
    v.push_back(0);
    for (int i = 0; i < n; ++i) {
        int a;
        cin >> a;
        v.push_back(a);
    }

    int mx_pos = 0;
    vector<int> dp(n + 1, 0);
    for (int i = 1; i <= n; ++i) {
        dp[i] = max(v[i], dp[i - 1] + v[i]);
        // cout << dp[i] << " ";

        if (dp[mx_pos] < dp[i]) {
            mx_pos = i;
        }
    }

    int i = mx_pos;
    while (i >= 1 && dp[i] >= 0) {
        --i;
    }

    ++i;

    cout << dp[mx_pos] << " " << i << " " << mx_pos << "\n";

    return 0;
}