Cod sursa(job #903553)

Utilizator SPDionisSpinei Dionis SPDionis Data 1 martie 2013 22:13:20
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <vector>

using std::vector;
std::ifstream in("ssm.in");
std::ofstream out("ssm.out");


int main()
{
    vector<int> a; int n;
    in >> n;
    for (int i = 0; i < n; ++i)
    {
        int x; in >> x;
        a.push_back(x);
    }

    int bestsum = -2e9, sum = 0, beg, end, idx;
    for (int i = 0; i < n; ++i)
    {
        if ( sum < 0 ) {
                sum = a[i]; idx = i; }
        else sum += a[i];

        if ( bestsum < sum ) {
            bestsum = sum; beg = idx; end = i;
        }
    }

    out << bestsum << " " << beg + 1 << " " << end + 1;

    in.close();
    out.close();
    return 0;
}