Cod sursa(job #1667051)

Utilizator macajouMaca George macajou Data 28 martie 2016 16:55:44
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

using namespace std;


void read(int a[], int &n)
{
	ifstream fin("ssm.in");

	fin >> n;
	for (int i = 1; i <= n; i++)
		fin >> a[i];
}

void max_sum(int a[], int n, int& start, int& end, int& sumMax)
{
	int i, sum = a[1], startC = 1;
	for (i = 2; i <= n; i++)
	{
		if (sum > sumMax)
		{
			sumMax = sum;
			end = i - 1;
			start = startC;
		}

		if (sum > 0)
		{
			sum += a[i];
		}
		else
		{
			startC = i;
			sum = a[i];
		}
	}

	if (sum > sumMax)
	{
		sumMax = sum;
		end = i - 1;
		start = startC;
	}

}

int main()
{
	int a[51],n;
	int start = 1, end = 1, sumMax = 0;

	ofstream fout("ssm.out");

	read(a, n);
	max_sum(a, n, start, end, sumMax);

	fout << sumMax << " " << start << " " << end << " ";

	return 0;
}