Cod sursa(job #3348150)

Utilizator Nicholas123Tudose Nicholas Nicholas123 Data 19 martie 2026 23:29:03
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
using namespace std;

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

int n, a[6000001];

int main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];

    int sum = a[1], best = a[1];
    int start = 1, best_l = 1, best_r = 1;

    for (int i = 2; i <= n; i++)
    {
        if (sum + a[i] < a[i])
        {
            sum = a[i];
            start = i;
        }
        else
        {
            sum += a[i];
        }

        if (sum > best ||
            (sum == best && (start < best_l ||
                (start == best_l && i - start < best_r - best_l))))
        {
            best = sum;
            best_l = start;
            best_r = i;
        }
    }

    cout << best << " " << best_l << " " << best_r;
}