Cod sursa(job #323160)

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

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

int main()
{
	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);
	int i, n, bi, ei;
	scanf("%d", &n);
	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);
	return 0;
}