Cod sursa(job #2125108)

Utilizator lonca.sorin01Lonca Sorin lonca.sorin01 Data 7 februarie 2018 23:19:21
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <climits>
#include <cstring>

using namespace std;

FILE * f = fopen("ssm.in", "r");
FILE * g = fopen("ssm.out", "w");

long long x[6000005], v[6000005] = {0}, mx = INT_MIN;

int main()
{
    int n, inceput = 1, final, istart, ifinal;
    fscanf(f, "%i", &n);
    for (int i = 1; i <= n; i++)
    {
        fscanf(f, "%i", &x[i]);
    }
    v[1] = 0;
    for (int i = 1; i <= n; i++)
    {
        if (v[i - 1] < 0)
        {
            v[i] = x[i];
            inceput = i;
            final = i;
        }
        else
        {
            v[i] = v[i - 1] + x[i];
            final = i;
        }
        if (v[i] > mx)
        {
            mx = v[i];
            istart = inceput;
            ifinal = final;
        }
    }
    fprintf(g, "%i %i %i", mx, istart, ifinal);
    return 0;
}