Cod sursa(job #3344011)

Utilizator Boita_DavidBoita David Andrei Boita_David Data 1 martie 2026 00:05:57
Problema Subsecventa de suma maxima Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>
using namespace std;

int v[1000005];
long long dp[1000005];

ifstream in("ssm.in");
ofstream out("ssm.out");

int main(){
    int n;
    in >> n;

    for(int i = 1; i <= n; i++)
        in >> v[i];

    dp[1] = v[1];

    long long maxim = dp[1];
    int start = 1, final = 1;
    int temp_start = 1;

    for(int i = 2; i <= n; i++){

        if(dp[i-1] + v[i] >= v[i]){
            dp[i] = dp[i-1] + v[i];
        }
        else{
            dp[i] = v[i];
            temp_start = i;
        }

        if(dp[i] > maxim){
            maxim = dp[i];
            start = temp_start;
            final = i;
        }
    }

    out << maxim << " " << start << " " << final;

    return 0;
}