Cod sursa(job #1357569)

Utilizator GumiPipeNoName GumiPipe Data 23 februarie 2015 23:21:13
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <limits>

using namespace std;

int main()
{
    int n;
    int max = numeric_limits<int>::min();
    int currentSum = 0;
    int currentStart = 0;
    int iStart = 0;
    int iEnd = 0;

    ifstream in("ssm.in");
    ofstream out("ssm.out");

    currentSum = 0;
    in >> n;

    for (int i = 1; i <= n; ++i)
    {
        int x;

        in >> x;

        if (currentSum < 0)
        {
            currentSum = x;
            currentStart = i;
        }
        else
        {
            currentSum += x;
        }

        if (currentSum > max)
        {
            max = currentSum;
            iStart = currentStart;
            iEnd = i;
        }
    }

    out << max << " " << iStart << " " << iEnd;

    in.close();
    out.close();

    return 0;
}