Cod sursa(job #2048901)

Utilizator BourucLiviuBouruc Petru Liviu BourucLiviu Data 26 octombrie 2017 18:07:02
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>

#define NMAX 6000005

using namespace std;

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

int S[NMAX];

int main()
{
    int n, bestSum = -int(2e9), Min = 0, idx, st, dr;
    fin >> n;
    for(int i = 1, x; i <= n; ++i)
    {
        fin >> S[i];
        S[i] += S[i-1];

        if(bestSum < S[i] - Min)
        {
            bestSum = S[i] - Min;
            st = idx + 1; dr = i;
        }
        if(Min > S[i])
        {
            Min = S[i];
            idx = i;
        }
    }
    fout << bestSum << " " << st << " " << dr;
    fin.close(); fout.close();
    return 0;
}