Cod sursa(job #1584608)

Utilizator vancea.catalincatalin vancea.catalin Data 30 ianuarie 2016 12:20:22
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<iostream>
#include<fstream>
#define DX 999999999
#define DM 6000006
using namespace std;
fstream fin("ssm.in",ios::in),fout("ssm.out",ios::out);
int x[DM],v[DM];
int main()
{
    int i,j,inceput,sfarsit,start,stop,maxim,n;
    fin>>n;
    fin>>x[1];
    v[1]=x[1];
    maxim=v[1];
    start=sfarsit=stop=inceput=1;
    for(i=2;i<=n;i++)
    {
        fin>>x[i];
        if(x[i]>v[i-1]+x[i])
        {
            v[i]=x[i];
            start=stop=i;
        }
        else
        {
            v[i]=v[i-1]+x[i];
            stop=i;
        }
        if(v[i]>maxim)
        {
            maxim=v[i];
            inceput=start;
            sfarsit=stop;
        }
    }
    fout<<maxim<<" "<<inceput<<" "<<sfarsit<<"\n";
    return 0;
}