Cod sursa(job #703491)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 2 martie 2012 12:37:24
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#include <iostream>

using namespace std;

#define maxN 6000005
#define INF 0x3f3f3f3f

int N , x[maxN];

int main ()
{
	freopen ("ssm.in" , "r" , stdin);
	freopen ("ssm.out" , "w" , stdout);
	
	scanf ("%d" , &N);
	
	for (int i = 1 ; i <= N ; ++i)
		scanf ("%d" , &x[i]);
	
	
	int best = -INF , a_sum = 0 , idx = 1 , begin , end;
	
	for (int i = 1 ; i <= N ; ++i)
	{
		if (a_sum < 0)
			a_sum = x[i] , idx = i;
		
		else a_sum += x[i];
		
		if (a_sum > best)
		{
			best = a_sum;
			begin = idx;
			end = i;
		}
		
	}
	
	printf ("%d %d %d" , best , begin , end);
	
	return 0;
}