Cod sursa(job #1971628)

Utilizator BeatriceBBeatrice Roxana BeatriceB Data 20 aprilie 2017 18:13:36
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
#define in "ssm.in"
#define out "ssm.out"
#define N 6000003
ifstream f(in);
ofstream g(out);
long a[N], n, i, j, best=0, BEST=0, ind_BEST=0, ind_inc_best=1, ind_inc_BEST=1;

int main ()
{
    f>>n;
    for(i=1; i<=n; i++)
    {
        f>>a[i];
        if(best+a[i]>a[i]) //a[i-1]=0
            best+=a[i];
        else
        {
            ind_inc_best=i;
            best=a[i];
        }
        if(best>BEST || (best==BEST&&(ind_inc_best-i<ind_inc_BEST)))
        {
            ind_inc_BEST=ind_inc_best;
            ind_BEST=i;
            BEST=best;
        }
    }

    g<<BEST<<' ';
    g<<ind_inc_BEST<<' ';
    g<<ind_BEST;
    g<<'\n';
    f.close();
    g.close();
    return 0;
}