Cod sursa(job #469017)

Utilizator S7012MYPetru Trimbitas S7012MY Data 5 iulie 2010 20:21:23
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 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;
	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	for(scanf("%d",&n ),i=1;i<=n;++i) {
	    scanf("%d",&ci);
	    if(s<0) s=ci,index=i;
	    else s+=ci;
	    if (smax<s) {
	        smax=s;
	        ifin=index;
	        jfin=i;
	    }
	}
	printf("%d %d %d\n",smax,ifin,jfin);
	return 0;
}