Cod sursa(job #267368)

Utilizator MarquiseMarquise Marquise Data 27 februarie 2009 09:14:35
Problema Subsecventa de suma maxima Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>

#define NMAX 600001

int N, x[NMAX], min, pm, st, dr;
int  max;


int main()
{
	int i;

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

	scanf("%d", &N);

	for ( i = 1; i <= N; i++)
	{
		scanf("%d", &x[i]);

		x[i] += x[i - 1];
	}

	max = -2000000;

	for ( i = 1; i <= N; i++)
	{
		if ( x[i] - min  > max)
		{
			max = x[i] - min;
			st = pm + 1;
			dr = i;
		}

		if ( x[i] < min)
		{
			min = x[i];
			pm = i;
		}
	}


	printf("%d %d %d\n", max, st, dr);


	return 0;
}