Cod sursa(job #682777)

Utilizator tiriplicamihaiTiriplica Mihai Dragos tiriplicamihai Data 19 februarie 2012 14:54:09
Problema Subsecventa de suma maxima Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>


#define MaxN 6000005

int S[MaxN], N;

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

	int i, min, start, end, sum, poz;
	
	scanf("%d", &N);
	for(i = 1; i <= N; i++)
		scanf("%d", &S[i]);

	min = 0;
	sum = -2*MaxN;
	for(i = 1; i <=N; i++){
		S[i] += S[i-1];
		if((S[i] - min) > sum){
			start = poz;
			end = i;
			sum = S[i] - min;
		}
		if(S[i] < min){
			min = S[i];
			poz = i;
		}
	}

	printf("%d %d %d\n", sum, start + 1, end);
	fclose(stdin);
	fclose(stdout);
	return 0;
}