Cod sursa(job #323158)

Utilizator GulyanAlexandru Gulyan Data 10 iunie 2009 22:37:57
Problema Subsecventa de suma maxima Scor 65
Compilator c Status done
Runda Arhiva educationala Marime 0.55 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));

	scanf("%d", v);
	bi = ei = 0;
	s[0] = v[0];
	for(i = 1; i < n; ++i){
		scanf("%d", v+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;
}