Cod sursa(job #385625)

Utilizator alutzuAlexandru Stoica alutzu Data 23 ianuarie 2010 10:38:08
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio>

const int NMAX = 6000001 ;

int s [ NMAX ] , x [NMAX] ;

int main ( )
{
	
	freopen ( "ssm.in" , "r" , stdin ) ;
	freopen ( "ssm.out" , "w" , stdout ) ;
	
	int n , i , max=1<<31 , maxf, maxi, ic=1 ;
	
	scanf ( "%d" , & n ) ;
	
	for ( i = 1; i <= n ; ++ i )
	{
		scanf ( "%d" , &x[i] ) ;
		if ( s [i-1] < 0 ) 
		{
			ic = i;
			s[i]=x[i];
		}
		else
			s[i]=s[i-1]+x[i];
		if ( s [i] > max )
		{
			max = s[i];
			maxi = ic ;
			maxf = i;
		}
	}
	
	i = maxi ;
	printf ( "%d " , max ) ;
	printf ( "%d %d" , maxi , maxf ) ;
	
	return 0 ;
	
}