Cod sursa(job #880712)

Utilizator FernandoSandoiu Fernando Fernando Data 17 februarie 2013 10:30:20
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>

using namespace std;


const int MAXN = 7000005;

int S[MAXN], n;

int main() {
    ifstream f("ssm.in");
    ofstream g("ssm.out");
    f>>n;
    for(int i=1;i<=n;i++)
        f >> S[i];
    int bestSum = -(2e9), min = 0, idx, beg, end;
    for(int i=1;i<=n;i++)
    {
        S[i] += S[i - 1];
        if (bestSum < S[i] - min)
            {bestSum = S[i] - min; beg = idx + 1; end = i;}
        if (min > S[i])
            {min = S[i]; idx = i;}
    }
    g << bestSum << " " << beg << " " << end;

    f.close();
    g.close();
    return 0;
}