Cod sursa(job #2630058)

Utilizator alex.bullzAlexandru Lilian alex.bullz Data 23 iunie 2020 20:58:33
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#include <vector>

int main() {
    std::ifstream fin("ssm.in");
    size_t n;
    std::vector<int> v;

    fin >> n;
    for (size_t i = 0; i < n; ++i) {
        int aux;
        fin >> aux;
        v.push_back(aux);
    }

    int max = v[0], start = 1, end = 1, acc = v[0], acc_start = 1;

    for (int i = 1; i < n; ++i) {
        if (acc + v[i] > max) {
            start = acc_start;
            end = 1 + i;
            max = acc + v[i];
        }            
        if (acc + v[i] < v[i]) {
            acc = v[i];
            acc_start = i + 1;
        } else {
            acc = acc + v[i];
        }
    }

    std::ofstream fout("ssm.out");

    fout << max << " " << start << " " << end;

    return 0;
}