Cod sursa(job #2237896)

Utilizator lucian2015blaugranadevil lucian2015 Data 3 septembrie 2018 20:27:45
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

#define nmax 6000001


using namespace std;

int a[nmax], best[nmax], n, tend, beg, s;
ifstream f("ssm.in");
ofstream g("ssm.out");

int main()
{
    int i, bestsum;
    f>>n;
    for(i = 1; i <= n; i++)
        f>>a[i];
    bestsum=a[1];
    for(i = 1; i <= n; i++)
    {
        best[i]=max(a[i],best[i-1]+a[i]);
        if(bestsum<best[i])
            { bestsum=best[i];
            tend=i;}
    }
    i=tend;
    s=a[tend];
    while(s!=bestsum){
        i--;
        s+=a[i];
        //g<<s<<' ';

    }
    beg=i;
    if(a[beg-1]==0)
        beg=i-1;
    //g<<s+a[beg];
    g<<bestsum<<' '<<beg<<' '<<tend;

}