Cod sursa(job #417837)

Utilizator emilia.ciobanuCiobanu Emilia Maria Silvia emilia.ciobanu Data 14 martie 2010 22:20:11
Problema Subsecventa de suma maxima Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <stdlib.h>

#define in "ssm.in"
#define out "ssm.out"
#define NMAX 6000005

int main ( void )
{
	freopen ( in, "r", stdin );
	freopen ( out, "w", stdout );

	int N, i, A[NMAX], x = 0, bbegin = 1, begin, end = 1;

	scanf ( "%d", &N );
	for ( i = 1 ; i <= N;  scanf ( "%d", A+i++ ) );

	int max = A[1];

	for( i = 2 ; i <= N ; ++i )
	{
		if ( x >= 0 )
			x += A[i];
		else
		{
			x = A[i];
			begin = i;
		}
		if ( max < x )
		{
			max = x;
			bbegin = begin;
			end = i;
		}
	}

	printf ( "%d %d %d\n", max, bbegin, end );

	return 0;
}