Cod sursa(job #2761043)

Utilizator Stefan_XTRadu Stefan Rares Stefan_XT Data 30 iunie 2021 11:55:38
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <bits/stdc++.h>
using namespace std;

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

int v[6000005], n, i;

void SecvSumMax()
{
    int s = v[0], smax = INT_MIN, st, en, st_curent, en_curent;

    st = en = st_curent = en_curent = 0;
    for (i = 1; i < n; i++)
    {
        if (v[i] > s + v[i])
            s = v[i], st_curent = en_curent = i;
        else
            s += v[i], en_curent = i;

        if (s > smax)
            st = st_curent, en = en_curent, smax = s;
    }

    fout << smax << " " << st+1 << " " << en+1;
}

int main()
{
    fin >> n;
    for (i = 0; i < n; i++)
        fin >> v[i];

    SecvSumMax();

    fin.close();
    fout.close();
    return 0;
}