Cod sursa(job #2117377)

Utilizator lonca.sorin01Lonca Sorin lonca.sorin01 Data 28 ianuarie 2018 20:19:27
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 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, x;

int main()
{
    int n, istart, ifinal, inceput, final, suma = 0, mx = INT_MIN, p;
    fscanf(f, "%i", &n);
    x.push_back(0);
    for (int i = 1; i <= n; i++)
    {
        fscanf(f, "%i", &p);
        x.push_back(p);
    }
    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;
}