Cod sursa(job #280235)

Utilizator drag0s93Mandu Dragos drag0s93 Data 13 martie 2009 11:55:39
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<stdio.h>

#define IN "ssm.in","r",stdin
#define OUT "ssm.out","w",stdout
#define Max 6000020

int n,min=2000000,pozi,pozj;
int sum[Max],stiva[Max];
int e=1,bestsum,pozmin=0,pozmax=1;

void citire()
{
	int nr;
	freopen(IN);
	scanf("%d",&n);
	for(int i=1;i<=n;++i)
	{
		scanf("%d",&nr);
		sum[i]=sum[i-1]+nr;
	}
}

int solve()
{
	int min,pozmin,max=-20000;
	for(int i=1;i<=n;++i)
	{
		min=2000000;
		for(int j=i-1;j>=1;--j)
			if(sum[j]<min)
			{
				pozmin=j;
				min=sum[j];
			}
		if(max<sum[i]-sum[pozmin])
		{
			pozi=pozmin+1;
			max=sum[i]-sum[pozmin];
			pozj=i;
		}
	}
	return max;
}

void afisare(int max)
{
	freopen(OUT);
	printf("%d %d %d\n",max,pozi,pozj);
}

int main()
{
	int max;
	citire();
	max=solve();
	afisare(max);
	return 0;
}