Cod sursa(job #408625)

Utilizator laurenttlaurentiu pavel laurentt Data 3 martie 2010 09:49:11
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<stdio.h>

long n; 
int a[6000001], b[6000001],c[6000001], max=-2000000; 
int p,k;


void cit()
{
	scanf("%d",&n);
	int i;
	for(i=1; i<=n; i++)
		scanf("%d",&a[i]);
}

void rez()
{
	int i,j;
	b[1]=a[1];
	c[1]=1;
	
	for(i=2; i<=n; i++)
	{
		b[i]=a[i];
		c[i]=1;
		if(b[i]>b[i]+b[i-1])
		{	c[i]=1;
			if(max<b[i])
			{	max=b[i];
				p=i;
				k=c[i];
			}
		}
		else
		{
			b[i]+=b[i-1];
			c[i]+=c[i-1];
			if(max<b[i])
			{
				max=b[i];
				p=i;
				k=c[i];
			}
		}
		
	}	
}


void afis()
{
	int i;
	printf("%d %d %d", max,  p-k+1, p);
}


int main()
{
	
	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	
	
	cit();
	rez();
	afis();
	
	return 0;
}