Cod sursa(job #417851)

Utilizator emilia.ciobanuCiobanu Emilia Maria Silvia emilia.ciobanu Data 14 martie 2010 22:46:46
Problema Subsecventa de suma maxima Scor 85
Compilator c Status done
Runda Arhiva educationala Marime 0.72 kb
/*

Observatii :

intre freopen si prima citire nu se declara variabile niciodata !!!
pentru a optimiza algoritmul, se face totul din citire. ( altfel, se fac 2 cicluri pana la NMAX = 6000000 )

*/

#include <stdio.h>
#include <stdlib.h>

#define in "ssm.in"
#define out "ssm.out"

int main ( void )
{

	int N;
	int maxim;

	freopen ( in, "r", stdin );
	freopen ( out, "w", stdout );

	scanf ( "%d", &N );

	int bbegin = 1, begin = 1, end = 1;
	maxim = -(1<<30);
	int i, x = 0, Y;

	for ( i = 1 ; i <= N; ++i )
	{
		scanf ( "%d", &Y );
		if ( x >= 0 )
			x += Y;
		else
		{
			x = Y;
			begin = i;
		}
		if ( maxim < x )
		{
			maxim = x;
			bbegin = begin;
			end = i;
		}
	}

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

	return 0;
}