Cod sursa(job #1500253)

Utilizator cristid9Cristi D cristid9 Data 11 octombrie 2015 17:35:27
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <climits>

#define MAX_SEQUENCE_SIZE 60000

int main()
{
    int* sequence;
    int size;

    std::cin >> size;
    sequence = new int[size];

    for (int i = 0; i < size; i++)
        std::cin >> 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;
        }
    }

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

    return 0;
}