Cod sursa(job #402197)

Utilizator Robert29FMI Tilica Robert Robert29 Data 23 februarie 2010 16:54:40
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>
FILE*f=fopen("ssm.in","r");
FILE*g=fopen("ssm.out","w");
int ss,i,j,ii,jj,v[6000001],s[6000001],n;
int main() {
	fscanf(f,"%d",&n);
	fscanf(f,"%d",&v[1]);
	s[1]=v[1];							         
	ii=1;
	j=1;
	ss=v[1];
	for(i=2;i<=n;i++){
		fscanf(f,"%d",&v[i]);  
		if(s[i-1]+v[i]>=v[i]){
			s[i]=s[i-1]+v[i];
			if(ss<s[i]){
				ss=s[i];
				ii=i;
				jj=j;
			}
		}
		else{
			s[i]=v[i];
			j=i;
			if(ss<s[i]){
				ss=s[i];
				ii=i;
				jj=j;
			}			
		}
		
	}
	fprintf(g,"%d %d %d",ss,jj,ii);
	
	fclose(g);
	fclose(f);
	return 0;
}