Cod sursa(job #2298598)

Utilizator nustiuba123Gheorghe Gheorghiu Dej nustiuba123 Data 8 decembrie 2018 11:38:25
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>

#define nmax 6000002
using namespace std;

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

int *v    = (int*)malloc(sizeof(int) * nmax);
int *sume = (int*)malloc(sizeof(int) * 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];
        (c >= v[i]) ? sume[i] = c, lung_curent++ : (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;
}
/* if  (c >= v[i])
        {
            sume[i] = c;
            lung_curent++;
        }
        else
        {
            sume[i] = v[i];
            lung_curent = 1;
        }*/