Cod sursa(job #296600)

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

#define Nmax 6000001

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

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