Cod sursa(job #340138)

Utilizator alex.cepoiAlexandru Cepoi alex.cepoi Data 13 august 2009 12:40:38
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <cstdio>
#include <climits>

int N, Max(INT_MIN), MaxPoz(INT_MIN);

int start=1, stop, sum;
int Mstart, Mstop, Msum(INT_MIN);

int main()
{
	freopen ("ssm.in","r",stdin);
	freopen ("ssm.out","w",stdout);

	scanf ("%d", &N);
	for (int i=1; i<=N; ++i)
	{
		int x; scanf("%d", &x);
		if (x > Max) { Max = x, MaxPoz = i; }

		if (sum < 0) { sum = 0, start = i; }
		sum += x, stop = i;
		if (sum > Msum) { Mstart = start, Mstop = stop, Msum = sum; }
	}

	if (Max < 0) printf ("%d %d %d\n", Max, MaxPoz, MaxPoz);
	else printf ("%d %d %d\n", Msum, Mstart, Mstop);
	return 0;
}