Cod sursa(job #741967)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 27 aprilie 2012 17:27:39
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <iostream>
#include <fstream>
#include <climits>

using namespace std;

#define INF INT_MAX
#define maxN 6000005

int x[maxN] , N;

int main ()
{
	ifstream f ("ssm.in");
	ofstream g ("ssm.out");
	
	f >> N;
	
	for (int i = 1 ; i <= N ; ++i)
		f >> x[i];
	
	int index = 1 , start , stop , sol = - INF , sum = 0;
	
	for (int i = 1 ; i <= N ; ++i)
	{
		if (sum < 0)
		{
			sum = x[i];
			index = i;
		}
		
		else sum += x[i];
		
		if (sum > sol)
		{
			sol = sum;
			start = index;
			stop = i;
		}
	}
	
	g << sol << " " << start << " " << stop;
	
	return 0;
}