Cod sursa(job #680445)

Utilizator raluca_vacaruVacaru Raluca-Ioana raluca_vacaru Data 15 februarie 2012 17:09:10
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
//subsecvente de suma maxima
#include <cstdio>
using namespace std ;

int n, x, i, imax, jmax, smax = -999999, icr = 1, scr ;

int main ( ) {
	freopen ( "ssm.in", "r", stdin ) ;
	scanf ( "%d\n", &n ) ;
	for ( i=1; i<=n; ++i ) {
		scanf ( "%d ", &x ) ;
		if ( x+scr > x ) {
			scr += x ;
		}
		else {
			scr = x ;
			icr = i ;
		}
		if ( scr > smax ) {
			smax = scr ;
			imax = icr ;
			jmax = i ;
		}
		else if ( (scr == smax) && (i-icr < jmax-imax) ) {
			smax = scr ;
			imax = icr ;
			jmax = i ;
		}
	}
	fclose ( stdin ) ;
	freopen ( "ssm.out", "w", stdout ) ;
	printf ( "%d %d %d", smax, imax, jmax ) ;
	fclose ( stdout ) ;
	return 0 ;
}