Cod sursa(job #3145134)

Utilizator catalinmarincatalinmarin catalinmarin Data 12 august 2023 22:40:49
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
using namespace std;
ifstream cin("ssm.in");
ofstream cout("ssm.out");
const int n = 6000000;
int v[n+2];
int dp[n+2];
int main(){
    int length;
    int start = 1;
    int end = 1;
    int temp_start = 1;
    cin >> length;
    for (int i = 1; i <= length ; i++){
        cin >> v[i];
    }
    long long max_sum = -100000000000000;
    for (int i = 1; i <= length; i++){
        dp[i] = max(dp[i-1] + v[i], v[i]);
        if (dp[i] < 0){
            temp_start = i+1;
        }
        if (dp[i] > max_sum){
            if (dp[i] == (dp[i-1] + v[i])){
                end = i;
                start = temp_start;
            } else {
                start = i;
                temp_start = i;
                end = i;
            }
            max_sum = dp[i];
        }
    }
    cout << max_sum << " " << start << " " << end;
}