Cod sursa(job #2713252)

Utilizator danhHarangus Dan danh Data 27 februarie 2021 15:49:11
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
#include <climits>
using namespace std;

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

const int NMAX = 6e6 + 1;

int v[NMAX];

int main()
{
    int i, j, n, best = INT_MIN, s=0;

    fin>>n;
    for(i=1; i<=n; i++)
    {
        fin>>v[i];
    }

    s = v[1];
    int start=1, stop=1, index;
    for(i=2; i<=n; i++)
    {
        if(s + v[i] > v[i])
        {
            s += v[i];
        }
        else
        {
            s = v[i];
            index = i;
        }

        if(s > best)
        {
            best = s;
            start = index;
            stop = i;
        }
    }

    if(n == 1)
        best = v[1];
    fout<<best<<' '<<start<<' '<<stop;
    fin.close();
    fout.close();
    return 0;
}