Cod sursa(job #1181137)

Utilizator pulseOvidiu Giorgi pulse Data 1 mai 2014 21:41:52
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

using namespace std;

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

#define NMAX 6000005

int best[NMAX], n, v[NMAX], maxim, imax, jmax, ii;

int main ()
{
	fin >> n;
	for (int i = 1; i <= n; ++i)
		fin >> v[i];
	best[1] = v[1];
	maxim = best[1];
	imax = 1; jmax = 1;
	ii = 1;
	for (int i = 2; i <= n; ++i)
	{
		if (v[i] > v[i] + best[i - 1])
		{
			best[i] = v[i];
			ii = i;
		}
		else
			best[i] = v[i] + best[i - 1];
		if (best[i] > maxim)
		{
			maxim = best[i];
			imax = ii;
			jmax = i;
		}
	}
	fout << maxim << " " << imax << " " << jmax;
	fin.close (); fout.close ();
	return 0;
}