Cod sursa(job #323154)

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

int main()
{
	//freopen("ssm.in", "r", stdin);
	//freopen("ssm.out", "w", stdout);
	int i, n, bi, ei;
	int *v, *s;
	scanf("%d", &n);
	v = (int*)malloc( n * sizeof(int));
	s = (int*)malloc( n * sizeof(int));
	for(i = 0; i < n; ++i)
		scanf("%d", v+i);

	bi = 0;
	ei = 0;
	s[0] = v[0];
	for(i = 1; i < n; ++i){
		if(s[i-1] < 0){
			bi = i;
			s[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);
	
	free(s);
	free(v);

	return 0;
}