Cod sursa(job #469018)

Utilizator S7012MYPetru Trimbitas S7012MY Data 5 iulie 2010 20:23:49
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
//dinamica O(1) mem
//smax=max(smax+s[i],s[i])

#include <cstdio>
#include <limits.h>

int main()
{
    int n,smax=INT_MIN,s=0,ifin,jfin,i,ci,index;
	FILE *f=fopen("ssm.in","r");
	FILE *g=fopen("ssm.out","w");
	for(fscanf(f,"%d",&n ),i=1;i<=n;++i) {
	    fscanf(f,"%d",&ci);
	    if(s<0) s=ci,index=i;
	    else s+=ci;
	    if (smax<s) {
	        smax=s;
	        ifin=index;
	        jfin=i;
	    }
	}
	fprintf(g,"%d %d %d\n",smax,ifin,jfin);
	fclose(f);
	fclose(g);
	return 0;
}