Cod sursa(job #906589)

Utilizator deresurobertoFMI - Deresu Roberto deresuroberto Data 6 martie 2013 22:10:03
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<cstdio>
int v[6000005],n,max,x1,y1,x,y,s,i;
int main()
{
	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n;i++)scanf("%d",&v[i]);
	x=1;max=-999999;
	for(i=1;i<=n;i++){
		if(s>max){x1=x;y1=y;max=s;}
		if(s+v[i]>=0){s=s+v[i];y=i;}
		else{x=i+1;s=0;}
		}
	if(s>max){x1=x;y1=y;max=s;}
	if(max==0){
		max=-99999;
		for(i=1;i<=n;i++)
			if(v[i]>max){max=v[i];x1=i;y1=i;}
	}		
	printf("%d %d %d",max,x1,y1);
	return 0;
}