Cod sursa(job #567428)

Utilizator dinuddinu dan dinud Data 30 martie 2011 07:54:12
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>
#define MMM 6000002
int pi,pf,max,n,i;
long v[MMM],s[MMM];
FILE *f = fopen("ssm.in","r");
FILE *g = fopen("ssm.out","w");

int main (){
	
	fscanf(f,"%d",&n);
	fscanf(f,"%d",&v[1]);
	s[1]=v[i];
	max=s[1];
	pi=pf=1;
	for(i=2;i<=n;i++){
		fscanf(f,"%d",&v[i]);
		if(s[i-1]+v[i]<v[i]){
			pi=i;
			s[i]=v[i];
		}else
			s[i]=s[i-1]+v[i];
		
		if(s[i]>max){
			pf=i;
			max=s[i];
		}
	}
	
	fprintf(g,"%d %d %d",max,pi,pf);
	
	fclose(f);
	fclose(g);
	return 0;
}