Cod sursa(job #296618)

Utilizator EcthorIorga Dan Ecthor Data 4 aprilie 2009 22:54:36
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>

#define Nmax 6000001

long n,a[Nmax],best[Nmax],bestsum,start,startsum,stopsum;

int main()
{
	freopen("ssm.in","r",stdin);
	//freopen("ssm.out","w",stdout);
	scanf("%ld",&n);
	start=1;
	bestsum=-2000000000;
	for(int i=1;i<=n;i++)
	{
		scanf("%ld",&a[i]);
		best[i]=a[i];
		if (best[i]<=best[i-1]+a[i]) best[i]=best[i-1]+a[i];
		else start=i;
		if (best[i]>bestsum) {bestsum=best[i]; startsum=start; stopsum=i;}
	}
	printf("%ld %ld %ld",bestsum,startsum,stopsum);
		
}