Cod sursa(job #385621)

Utilizator alutzuAlexandru Stoica alutzu Data 23 ianuarie 2010 10:35:18
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 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 , maxi ;
	
	scanf ( "%d" , & n ) ;
	
	for ( i = 1; i <= n ; ++ i )
	{
		scanf ( "%d" , &x[i] ) ;
		if ( s [i-1] < 0 ) 
			s[i]=x[i];
		else
			s[i]=s[i-1]+x[i];
		if ( s [i] > max )
		{
			max = s[i];
			maxi = i ;
		}
	}
	
	i = maxi ;
	printf ( "%d " , max ) ;
	--i;
	while ( s[i] != x[i] )
		--i;
	printf ( "%d %d" , i , maxi ) ;
	
	return 0 ;
	
}