Cod sursa(job #2152624)

Utilizator IustinPetrariuIustinian Petrariu IustinPetrariu Data 5 martie 2018 18:15:13
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#define nmax  6000000+1
#define inf 10000000

using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,a[nmax],BEST[nmax],bestSum=inf,ind,ind2,suma;
void solve()
{
    bestSum=a[1];
    for(int i =1 ; i <= n ; i++)
        BEST[i]=a[i];
    for(int i =2 ; i <= n ; i++)
    {
        if(BEST[i] < BEST[i-1]+a[i] )
            BEST[i]=BEST[i-1]+a[i];
        if(bestSum<BEST[i])
        {
            bestSum=BEST[i];
            ind=i;
        }
    }
}
void read()
{
    fin>>n;
    for(int i  = 1; i <= n ; i++)
        fin>>a[i];

}
int solveWrite()
{
    ind2=ind;
    while(ind2>0)
    {
        suma+=a[ind2];
        ind2--;
        if(suma==bestSum) break;
    }

}
int main()
{
    read();
    solve();
    solveWrite();
    fout<<bestSum<<" "<<ind2+1<<" "<<ind;
    return 0;
}