Cod sursa(job #613884)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 4 octombrie 2011 23:24:02
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
# include <iostream>
using namespace std;

# define MaxN 6000005

int N , maxim = 0, sum , x[MaxN] , sume[MaxN] , minim = 0;

int main ()
{
	int inceput , sfarsit;
	
	freopen ("ssm.in" , "r" , stdin);
	freopen ("ssm.out" , "w" , stdout);
	
	scanf ("%d" , &N);
	
	for (int i = 1 ; i <= N ; ++i)
	{
		scanf ("%d" , &x[i]);
		
		sume[i] += sume[i - 1] + x[i];
		
		if (sume[i] < minim) 
		{
			minim = sume[i];
			inceput = i + 1;
		}
		
		if (sume[i] - minim > maxim)
		{
			maxim = sume[i] - minim;
			sfarsit = i;
		}
		
		
	}
	
	printf ("%d %d %d" , maxim , inceput , sfarsit);
	
	return 0;
}