Cod sursa(job #870910)

Utilizator tudorv96Tudor Varan tudorv96 Data 4 februarie 2013 08:35:47
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
//#include <iostream>

using namespace std;

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

void Read ();
void SubSum ();

int v[60000010], n;
int cmin, cmax;
int tcmin;

int main ()
{
	Read ();
	SubSum ();
	return 0;
}

void Read ()
{
	fin >> n;
	for (int i = 0; i < n; ++i)
		fin >> v[i];
	return ;
}

void SubSum ()
{
	int s = 0, Smax = -9999999;
	for (int i = 0; i < n; ++i)
	{
		if (s + v[i] > Smax)
		{
			Smax = s + v[i];
			cmax = i;
			cmin = tcmin;
		}
		if (s + v[i] < 0 && i < n - 1)
		{
			s = 0;
			tcmin = i + 1;
		}
		else
			s = s + v[i];
	}
	fout << Smax << " " << cmin + 1 << " " << cmax + 1;
}