Cod sursa(job #478762)

Utilizator a.stanciuStanciu Adrian a.stanciu Data 20 august 2010 12:20:48
Problema Subsecventa de suma maxima Scor 95
Compilator c Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

#define N 6000000

int v[N];

void ssm(int n)
{
	int i, s = v[0], max = v[0], ok = 0, aux;
	int start = 0, stop = 0;
	for (i = 1; i < n; i++)
	{
		aux = max + v[i];
		if (aux > v[i])
			max = aux;
		else
		{
			max  = v[i];
			ok = i;
			while (v[ok - 1] == 0) ok--;
		}
		if (max > s)
		{
			s = max;
			stop = i;
			start = ok;
		}
	}
	printf("%d %d %d\n", s, start + 1, stop + 1);
}

int main()
{
	int n, i;
	FILE *f, *g;

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

	scanf( "%d", &n);
	for (i = 0; i < n; i++)
		scanf("%d", &v[i]);

	ssm(n);

	return 0;
}