Cod sursa(job #3344591)

Utilizator Sabin1133Padurariu Sabin Sabin1133 Data 3 martie 2026 17:56:12
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>

#define NMAX 6000000U

int main()
{
    int n;
    int start_i, end_i, max_sum;
    int neg_i, neg_sum;

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

    start_i = 0;
    end_i = 0;
    max_sum = 0;
    neg_i = 0;
    neg_sum = 1 << 31;

    std::cin >> n;

    for (int x, sum = 0, i = 0, j = 0; j < n; ++j) {
        std::cin >> x;

        if (x < 0 && x > neg_sum) {
            neg_sum = x;
            neg_i = j;
        }

        if (sum + x < 0) {
            sum = 0;
            i = j + 1;
        } else {
            sum += x;

            if (sum > max_sum) {
                start_i = i;
                end_i = j + 1;
                max_sum = sum;
            }
        }
    }

    if (max_sum > 0)
        std::cout << max_sum << ' ' <<  start_i + 1 << ' ' << end_i << "\n";
    else
        std::cout << neg_sum << ' ' << neg_i + 1 << '\n';

    return 0;
}