Cod sursa(job #3151244)

Utilizator mewcatPetru Boca mewcat Data 20 septembrie 2023 13:12:32
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.11 kb
#include <iostream> 
#include <fstream> 

using namespace std; 

int main() 
{
    ifstream f("smm.in");
    ofstream g("smm.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 = -1;
    int best_i,best_j = 0;
    for (int i = 0; i < n; i++)
    {
        current_sum = a[i];
        for (int j = i+1; j < n; j++)
        {
            current_sum += a[j];
            if (max_sum < current_sum)
            {
                max_sum = current_sum;
                best_i = i;
                best_j = j;
            }
            if (max_sum == current_sum && best_i > i)
            {
                max_sum = current_sum;
                best_i = i;
                best_j = j;
            }
            if ((current_sum == max_sum) && (best_i == i) && (best_j - best_i > j - i))
            {
                max_sum = current_sum;
                best_i = i;
                best_j = j;
            }  
        }
    }
    g << max_sum << ' ' << best_i << best_j;
    return 0; 
}