Cod sursa(job #323168)

Utilizator GulyanAlexandru Gulyan Data 10 iunie 2009 22:53:10
Problema Subsecventa de suma maxima Scor 70
Compilator c Status done
Runda Arhiva educationala Marime 0.45 kb
#include <stdio.h>
#include <stdlib.h>

#define SMAX 6000000
int v[SMAX], s[SMAX], n;

int main()
{
	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);
	int i, bi, ei = bi = 0;
	scanf("%d%d", &n, v);
	s[0] = v[0];
	for(i = 1; i < n; ++i){
		scanf("%d", v+i);
		if(s[i-1] < 0)
			s[bi = i] = v[i];
		else
			s[i] = s[i-1] + v[i];
		if(s[i] >= s[ei])
			ei = i;
	}
	printf("%d %d %d\n", s[ei], bi+1, ei+1);
	return 0;
}