Cod sursa(job #361675)

Utilizator Teodor94Teodor Plop Teodor94 Data 6 noiembrie 2009 11:35:56
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <cstdio>

const int N=(1<<23);

int a[N],n;

int main()
{
	freopen("ssm.in","r",stdin);
	freopen("ssm.out","w",stdout);
	int i;
	scanf("%d",&n);
	for (i=1;i<=n;i++)
		scanf("%d",&a[i]);
	int sc=0,smax=-(1<<30),ic,sfc,icmax,sfmax;
	for (i=1;i<=n;i++)
	{
		sc+=a[i];
		if (sc>smax)
		{
			smax=sc;
			sfc=i;
			icmax=ic;
			sfmax=sfc;
		}
		if (sc<0)
		{
			sc=0;
			ic=i+1;
		}
	}
	printf("%d %d %d",smax,icmax,sfmax);
	return 0;
}