Cod sursa(job #402217)

Utilizator KoniacDocea Andrei Koniac Data 23 februarie 2010 17:38:03
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>
int s,i,j,x,y,v[6000001],a[6000001],n;
int main() {
	FILE*f=fopen("ssm.in","r");
	FILE*g=fopen("ssm.out","w");
	fscanf(f,"%d",&n);
	fscanf(f,"%d",&v[1]);
	a[1]=v[1];                                  
	x=1;
	j=1;
	s=v[1];
	for(i=2;i<=n;i++){
		fscanf(f,"%d",&v[i]); 
		if(a[i-1]+v[i]>=v[i]){
			a[i]=a[i-1]+v[i];
			if(s<a[i]){
				s=a[i];
				x=i;
				y=j;
			}
		}
		else{
			a[i]=v[i];
			j=i;
			if(s<a[i]){
				s=a[i];
				x=i;
				y=j;
			}          
		}
			
	}
	fprintf(g,"%d %d %d",s,y,x);
		
	fclose(g);
	fclose(f);
	return 0;
}