Cod sursa(job #723845)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 25 martie 2012 22:42:58
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb

#include <fstream>

int main (void)
{
    std::ifstream input("ssm.in");
    unsigned int n;
    input >> n;
    signed int max;
    input >> max;
    unsigned int start(1),last(1);
    signed int suma(max),x;
    for (unsigned int i(2), begin(1), end(1) ; i <= n ; ++i)
    {
        input >> x;
        if (suma + x > x)
        {
           suma += x;
           ++end;
        }
        else
        {
            suma = x;
            begin = end = i;
        }
        if (suma > max)
        {
            max = suma;
            start = begin;
            last = end;
        }
    }
    input.close();
    std::ofstream output("ssm.out");
    output << max << ' ' << start << ' ' << last << '\n';
    output.close();
    return 0;
}