Cod sursa(job #361525)

Utilizator BaduBadu Badu Badu Data 5 noiembrie 2009 18:23:32
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<stdio.h>

long best,n,x,start,lung,B,S,L;

int main(){

	FILE * f=fopen("ssm.in", "r");
	FILE * g=fopen("ssm.out","w");

	fscanf(f,"%ld %ld",&n,&x);

	best = B = x;
	S = L = start = lung = 1;
	
	long i;
	for(i=2;i<=n;++i){
		
		fscanf(f,"%ld",&x);

		if      ( best + x <= x ) { start = i; best = x; lung = 1; }
		else                      { best += x ; lung++;            }

		if ( B < best ){ B = best ; S = start ; L = lung; }

	}

	fprintf(g,"%ld %ld %ld",B,S,S+L-1);

	
	return 0;
}