Cod sursa(job #356040)

Utilizator zizou_adyIacov Adrian zizou_ady Data 13 octombrie 2009 12:35:33
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#include <algorithm>
using namespace std;

#define N 6000000

int a[N], s[N];

ifstream fin("ssm.in");
ofstream fout("ssm.out");

int main()
{
	int i, j;
	int n;
	int maxim = -9999;
	fin >> n;
	for ( i = 1; i <= n; i++)
	{
		fin >> a[i];
		s[i] = max (s[i-1] + a[i], a[i]);
		if ( s[i] > maxim )
		{
			maxim = s[i];
			j = i;
		}
	}
	i = j;
	int q = 0;
	while ( q != maxim )
	{
		i--;
		q += a[i];
	}		
	fout << maxim << ' ' << i << ' ' << j;
	fout.close();
	fin.close();
	return 0;
}