Cod sursa(job #490469)

Utilizator delia_popescupopescu delia delia_popescu Data 6 octombrie 2010 17:39:59
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<stdio.h>

int i,dr,st,v[6000001],k,min1,u,a,p,s,n;
int max1=-2147483647;
int main(){
	FILE* f=fopen("ssm.in","r");
	FILE* g=fopen("ssm.out","w");
	
	fscanf(f,"%d",&n);
	for( i=1;i<=n;i++)
		fscanf(f,"%d",&v[i]);
    
	/*for(i=1;i<=n;i++){
		v[i]+=v[i-1];
		if(v[i]-min1>max1){
			max1=v[i]-min1;
			st=k+1; 
			dr=i;
		}
		if(v[i]<min1){
			min1=v[i];
			k=i;
		}
	}
	fprintf(g,"%d %d %d",max1,st,dr);*/
	
	p=u=a=1;
    for(i=1;i<=n;i++){
			if(s<0) {
				s=0; a=i;
			}
        s+=v[i];
        if(s>max1){
			max1=s;
			u=i; 
			p=a;
		}
	}

	fprintf(g,"%d %d %d",max1,p,u);
	fclose(f);
	fclose(g);
	return 0;
}