Cod sursa(job #3345044)

Utilizator alexia._.fFlorete Alexia alexia._.f Data 7 martie 2026 18:35:04
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>

using namespace std;

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

const int N = 6000000;

int main()
{
    int n, best, start_curent = 1, best_right = 1, best_left = 1;
    int a[N + 1], dp[N + 1];
    in >> n;
    for(int i = 1; i <= n; i++)
    {
        in >> a[i];
    }

    dp[1] = a[1];
    best = a[1];
    for(int i = 2; i <= n; i++)
    {
        dp[i] = max(a[i], dp[i - 1] + a[i]);
        //daca am inceput secventa noua
        if(a[i] > dp[i-1] + a[i])
        {
            start_curent =  i;
        }
       
        if (dp[i] > best) 
        {
            best = dp[i];
            best_left = start_curent;
            best_right = i;
        }
    }

    out << best << " " << best_left << " " << best_right << "\n";
    in.close();
    out.close();
    return 0;
}