Cod sursa(job #2841362)

Utilizator BeilandArnoldArnold Beiland BeilandArnold Data 29 ianuarie 2022 17:00:10
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <vector>
#include <fstream>
#include <algorithm>
using namespace std;

int main()
{
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");

    int n;
    fin >> n;

    int a0;
    fin >> a0;

    int s_prec = a0;
    int inceput_prec = 0;

    int maxim = s_prec;
    int incep_maxim = inceput_prec;
    int sf_maxim = 0;

    for (int i = 1; i < n; ++i) {
        int ai;
        fin >> ai;

        int s_curr;
        int inceput_curr;

        if (/*ai > s_prec + ai*/ s_prec < 0) {
            s_curr = ai;
            inceput_curr = i;
        }
        else {
            s_curr = s_prec + ai;
            inceput_curr = inceput_prec;
        }

        if (s_curr > maxim) {
            maxim = s_curr;
            incep_maxim = inceput_curr;
            sf_maxim = i;
        }

        s_prec = s_curr;
        inceput_prec = inceput_curr;
    }

    fout << maxim << ' ' << incep_maxim + 1
         << ' ' << sf_maxim + 1 << endl;

    return 0;
}