Cod sursa(job #2117362)

Utilizator lonca.sorin01Lonca Sorin lonca.sorin01 Data 28 ianuarie 2018 20:13:35
Problema Subsecventa de suma maxima Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <climits>

using namespace std;

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

vector<int> sec;

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