Cod sursa(job #2298585)

Utilizator nustiuba123Gheorghe Gheorghiu Dej nustiuba123 Data 8 decembrie 2018 11:33:09
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#define nmax 6000002
using namespace std;

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

int v[nmax];
int sume[nmax];

int main()
{
    int n, i, sum = -1000000, c, ind_fin, lung_curent = 1, lung = 1;
    fin >> n;
    fin >> v[0], sume[0] = v[0];
    for (i = 1; i < n; i++)
    {
        fin >> v[i];
        c = sume[i-1] + v[i];
        if  (c >= v[i])
        {
            sume[i] = c;
            lung_curent++;
        }
        else
        {
            sume[i] = v[i];
            lung_curent = 1;
        }
        if (sume[i] > sum)
        {
            sum = sume[i];
            ind_fin = i;
            lung = lung_curent;
        }
    }

    fout << sum << " " << ind_fin + 2 - lung << " " << ind_fin + 1;

    return 0;
}