Cod sursa(job #2296358)

Utilizator DragosSDragos Sarbu DragosS Data 4 decembrie 2018 17:11:24
Problema Subsecventa de suma maxima Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");

int v[6000000],best[6000000],init[6000000];
int n;

int main()
{
    f>>n;

    for(int i=0;i<n;i++)
        f>>v[i];


    best[0]=v[0];
    init[0]=0;

    int maxim=best[0],fin=0;

    for(int i=1;i<n;i++)
    {
        if(best[i-1]>=0)
        {
            best[i]=best[i-1]+v[i];
            init[i]=init[i-1];
        }
        else
        {
            best[i]=v[i];
            init[i]=i;
        }
    }

    for(int i=1;i<n;i++)
        if(maxim<best[i])
        {
            maxim=best[i];
            fin=i;
        }


    for(int i=init[fin];i<=fin;i++)
        g<<v[i]<<" ";

}