Cod sursa(job #3152295)

Utilizator mewcatPetru Boca mewcat Data 24 septembrie 2023 15:53:07
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <iostream> 
#include <fstream> 

using namespace std; 

int main() 
{
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    int n = 0;
    f >> n;

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

    // int current_sum = 0;
    // int max_sum = -99999;
    int global_best_i = 0;
    int global_best_j = 0;
    int local_best_i = 0;
    int local_best_j = 0;

    int local_max = a[0];
    int global_max = a[0];
    for (int i = 1; i < n; i++)
    {   
        local_best_j = i;
        if (local_max+a[i] < a[i])
        {
            local_best_i = i;
        }
        local_max = max(local_max+a[i], a[i]);
        if (global_max < local_max)
        {
            global_max = local_max;
            global_best_j = local_best_j;
            global_best_i = local_best_i;
        }
    }


    g << global_max << ' ' << global_best_i+1 << ' ' << global_best_j+1;


    return 0;
}