Cod sursa(job #490373)

Utilizator tangredonSilviu Georgescu tangredon Data 6 octombrie 2010 11:09:21
Problema Subsecventa de suma maxima Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <iostream>
#include <fstream>
#define MOD 7000005
using namespace std;

ifstream f ("ssm.in");
ofstream g ("ssm.out");

int n;
int a[MOD];
int i;
int j, k, Max;
int s[MOD];
int x[MOD];
int y[MOD];
int c1,c2;

int main ()
{
	for ( i = 0, f >> n; i < n; i++, f>> a[i]);
	//for ( i = 0; i < n; i++, g << a[i] << ' ');
	
	for ( i = 1; i < n+1; i++ )
	{	
		Max = 0;
		for ( k = i+1; k <= n; k++ )
		{
			s[i] = a[i];
			for ( j = i+1; j <= k; j++ )
			{
				s[i] = s[i] + a[j];
			}
			
			if ( s[i] > Max ) 
			{
				Max = s[i];
				x[i] = i;
				y[i] = k;
			}
			//cout << "i = " << i << ' ' << "k = " << k	<< ' ' << " s = " << s[i] << '\n';
		}
		
		s[i] = Max;
	}
	
	j = s[0];
	for ( i = 1; i < n+1; i++ )
		if ( s[i] > j )
		{
			j = s[i];
			c1 = x[i];
			c2 = y[i];
		}
		
	g << j << ' ' << c1 << ' ' << c2;
	return 0;
	
}