Cod sursa(job #2288078)

Utilizator DariusDCDarius Capolna DariusDC Data 22 noiembrie 2018 20:39:02
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NLIM = 6000001;

int n, a[NLIM];
int best[NLIM];
int suma[NLIM];


int main()
{
    fin >> n;
    suma[0] = 0;
    for (int i=1;i<=n;i++)
    {
        fin >> a[i];
        suma[i] = a[i] + suma[i-1];
    }
    int BestSuma = -NLIM;
    int minim = 0;
    int pozj,pozi;
    for (int i=1;i<=n;i++)
    {
        best[i] = suma[i] - minim;
        if (best[i] > BestSuma)
        {
            BestSuma = best[i];
            pozj = i;
        }
        if (best[i] < minim)
        {
            minim = best[i];
            pozi = i + 1;
        }
    }
    fout << BestSuma << " " << pozi << " " << pozj;
    return 0;
}