Cod sursa(job #1500275)

Utilizator cristid9Cristi D cristid9 Data 11 octombrie 2015 17:55:56
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>
#include <climits>

#define MAX_SEQUENCE_SIZE 60000

int main()
{
    std::ofstream fout("ssm.out");
    std::ifstream fin("ssm.in");

    int* sequence;
    int size;

    fin >> size;
    sequence = new int[size];

    for (int i = 0; i < size; i++)
        fin >> sequence[i];

    int maxSum = sequence[0];
    int startMaxSum = 0;
    int lenMaxSum = 1;

    int curSum = sequence[0];
    int startCurSum = 0;
    int lenCurSum = 1;

    for (int i = 1; i < size; i++)
    {
        if (curSum + sequence[i] >= sequence[i])
        {
            curSum += sequence[i];
            lenCurSum++;
        }
        else
        {
            curSum = sequence[i];
            startCurSum = i;
            lenCurSum = 1;
        }

        if (maxSum < curSum)
        {
            maxSum = curSum;
            startMaxSum = startCurSum;
            lenMaxSum = lenCurSum;
        }
    }

    fout << maxSum << " " << startMaxSum + 1 << " "
         << startMaxSum + lenMaxSum << std::endl;

    fin.close();
    fout.close();

    return 0;
}