Cod sursa(job #3342540)

Utilizator TimofeiFilipTimofei Filip Emanuel TimofeiFilip Data 24 februarie 2026 17:24:06
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>

using namespace std;

int main()
{
    freopen("ssm.in", "r", stdin);
    freopen("ssm.out", "w", stdout);

    int n;
    scanf("%d", &n);

    int result = INT_MIN, left_max = 1, right_max = 1;
    int current_sum = 0, current_left = 1;

    for(int i = 1; i <= n; i++){
        int number;

        scanf("%d", &number);
        current_sum += number;
        if(current_sum > result || (current_sum == result && (left_max > current_left || (right_max - left_max + 1 > i - current_left + 1)))){
            result = current_sum;
            left_max = current_left;
            right_max = i;
        }
        if(current_sum < 0){
            current_sum = 0;
            current_left = i + 1;
        }


    }
    printf("%d %d %d", result, left_max, right_max);

    return 0;
}