Cod sursa(job #366606)

Utilizator belgun_adrianBelgun Dimitri Adrian belgun_adrian Data 22 noiembrie 2009 09:55:46
Problema Subsecventa de suma maxima Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdlib.h>
#include <stdio.h>

int n, a[100000], max = 0, s = 0, ii, jj, imax, jmax;


int main ()
{
	freopen ("ssm.in", "r", stdin);
	freopen ("ssm.out","w", stdout);
	
	scanf ("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf ("%d", &a[i]);
	}		
	
	s = 0; 
	ii = 1; jj = 1;
	
	for (int i = 0; i < n; i++)
	{
		if (s + a[i] > a[i])
		{
			s += a[i];
			jj = i + 1;
		}
		else
		{
			s = a[i];
			ii = i + 1;
			jj = i + 1;
		}
		if (s > max)
		{
			max = s;
			imax = ii;
			jmax = jj;
		}
	}
	
	printf ("%d %d %d\n", max, imax, jmax);
	return 0;
}