Cod sursa(job #3184128)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 14 decembrie 2023 15:58:15
Problema Subsecventa de suma maxima Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

using namespace std;
int n;
int v[6000005];
int dp[6000005];
int start[6000005];
ifstream f("ssm.in");
ofstream g("ssm.out");

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

    for (int i = 1; i <= n; i++) {
        if (dp[i-1] < 0) {
            dp[i] = v[i];
            start[i] = i;
        } else {
            dp[i] = dp[i-1] + v[i];
            start[i] = start[i-1];
        }
    }

    int Max = 0;
    int idx_max;
    for (int i = 1; i <= n; i++) {
        if (Max < dp[i]) {
            Max = dp[i];
            idx_max = i;
        }
    }
    g << Max << " " << start[idx_max] << " " << idx_max;
    
}