Cod sursa(job #1393659)

Utilizator dinuandAndrei-Mario Dinu dinuand Data 19 martie 2015 17:38:26
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <vector>
#include <limits>

int main()
{
    std::ifstream in("ssm.in");
    std::ofstream out("ssm.out");

    int N;
    in >> N;

    int first_index = 1, last_index = 1, no, aux = 1;
    long long sum = 0, sum_sol;
    sum_sol = std::numeric_limits<long long>::min();
    for (auto i = 1; i <= N; i++) {
        in >> no;
        sum += no;
        if (sum > sum_sol) {
            sum_sol = sum;
            first_index = aux;
            last_index = i;
        }
        if (sum < 0) {
            sum = 0;
            aux = i + 1;
        }
    }

    out << sum_sol << " " << first_index << " " << last_index << '\n';

    return 0;
}