Cod sursa(job #903309)

Utilizator alex_unixPetenchea Alexandru alex_unix Data 1 martie 2013 19:54:29
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb

#include <cstdio>

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