Cod sursa(job #1043445)

Utilizator TwoOfDiamondsDaniel Alexandru Radu TwoOfDiamonds Data 28 noiembrie 2013 16:56:43
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

int main()
{
	ifstream IN("ssm.in");
	ofstream OUT("ssm.out");

	int n; IN >> n;

	int bestSum;
	int beg = 1, end = 1;
	int actBeg = 1;
	int *best = new int[n];
	int *vec = new int[n];

	for (int i = 0; i < n; i++)
	{
		IN >> vec[i];
	}

	bestSum = vec[0];

	for (int i = 0; i < n; i++)
	{
		best[i] = vec[i];

		if (best[i] < best[i - 1] + vec[i])
			best[i] = best[i - 1] + vec[i];
		else
			actBeg = i + 1; 
		if (bestSum < best[i])
		{
			bestSum = best[i];
			end = i + 1;
			beg = actBeg;
		}
	}

	OUT << bestSum << " "  << beg << " " << end << "\n";

	delete[] best;
	delete[] vec;

	return 0;
}