Cod sursa(job #903334)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 1 martie 2013 20:06:22
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb

#include <cstdio>

int main (void)
{
	std::freopen("ssm.in","r",stdin);
	std::freopen("ssm.out","w",stdout);
	int n, x;
	std::scanf("%d",&n);
	int i, begin, last, start, end, sum(-1), best(-1 << 30);
	for (i = 1 ; i <= n ; ++i)
	{
		std::scanf("%d",&x);
		if (sum >= 0)
		{
			sum += x;
			++end;
		}
		else
		{
			sum = x;
			begin = end = i;
		}
		if (sum > best)
		{
			start = begin;
			last = end;
			best = sum;
		}
	}
	std::printf("%d %d %d\n",best,start,last);
	std::fclose(stdin);
	std::fclose(stdout);
	return 0;
}