Cod sursa(job #560206)

Utilizator Rares95Rares Arnautu Rares95 Data 18 martie 2011 13:05:49
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb

	# include <fstream>
	using namespace std;
	
	int sum[ 6000001 ];
	
	int main () {
		int n, i, pmin, min = 0, pi, pf, sol = -0x3f3f3f3f;
		
		ifstream f ( "ssm.in" );
		ofstream g ( "ssm.out");
		
		f >> n;
		
		for ( i = 1; i <= n; ++i ) f >> sum[ i ];
		
		for ( i = 1; i <= n; ++i ) {
			sum[ i ] += sum[ i - 1 ];
			if ( sum[ i ] -  min > sol ) {
				sol = sum[ i ] - min;
				pi = pmin + 1;
				pf = i;
			}
			if ( min > sum[ i ] ) {
				min = sum[ i ];
				pmin = i;
			}
		}
		
		g << sol << ' ' << pi << ' ' << pf << '\n';
		
		g.close ();
		return 0;
	}