Cod sursa(job #542732)

Utilizator balakraz94abcd efgh balakraz94 Data 26 februarie 2011 21:38:26
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<cstdio>
#define L 1000
using namespace std;



int main()
{
	int n,x,pc=0,uc=0,p,u;
	long smax=0,sc=0;
	int sneg=-int(2e9), ineg;
	
	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	
	scanf("%d",&n);
	
	p=u=0;
	
	for(int i=1;i<=n;i++)
	{
	scanf("%d",&x);
	if(x>sneg) sneg=x, ineg=i;
	
	if(x+sc>0)
    {	
		sc+=x, uc++;
		if(sc>smax)
	{
		smax=sc;
		p=pc;
		u=uc;
	}
	}
	
	else if(sc>smax)
	{
		smax=sc;
		p=pc;
		u=uc;
		pc=uc=i+1;
		sc=0;
	}
	else pc=uc=i+1, sc=0;
	}
	fclose(stdin);
	
	if(smax<sc) smax=sc, p=pc, u=uc;
	
	if(smax) printf("%ld %d %d",smax,p,u-1);
	else printf("%d %d %d",sneg,ineg,ineg);
	
	fclose(stdout);

	return 0;
}