Cod sursa(job #2817757)

Utilizator AlexNeaguAlexandru AlexNeagu Data 14 decembrie 2021 10:07:48
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include<bits/stdc++.h>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int main() {

    int N;
    in >> N;
    int dp[N], deUnde[N];
    for(int i = 0; i < N; ++i) {
        in >> dp[i];
    }

    deUnde[0] = 0;
    for(int i = 1; i < N; ++i) {
        if(dp[i - 1] + dp[i] >= dp[i]) {
            deUnde[i] = deUnde[i - 1];
            dp[i] = dp[i - 1] + dp[i];
        } else {
            deUnde[i] = i;
        }
    }
    int answer = -2e9, R;
    for(int i = 0; i < N; ++i) {
        if(dp[i] > answer) {
            R = i;
            answer = dp[i];
        }
    }
    out << answer << ' ' << deUnde[R] + 1 << ' ' << R + 1 << '\n';

}