Cod sursa(job #3348400)

Utilizator dariacntConstantinescu Daria dariacnt Data 21 martie 2026 14:01:08
Problema Subsecventa de suma maxima Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <iostream>
#include <vector>

using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

int main() {

    int n;
    f >> n;
    
    vector<int> dp(n + 1);
    vector<long long> v(n + 1);
   
    int l = 0, ssm = 0;
    int best_start = 0, best_end = 0;

    

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

    dp[1] = v[1];

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

        if(dp[i] > ssm) {
            ssm = dp[i];
            best_start = l;
            best_end = i;
        }
    }



    g << ssm << " " << best_start << " " << best_end;
}