Cod sursa(job #466413)

Utilizator dornescuvladVlad Eugen Dornescu dornescuvlad Data 26 iunie 2010 16:08:24
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

const char iname[] = "ssm.in";
const char oname[] = "ssm.out";
const int nmax = 6000005;

ifstream fin(iname);
ofstream fout(oname);

int S[nmax], x, i, j, k, l, bestSum, idx_start, idx_final, minim, N, poz;
int best;
int main()
{
	fin >> N;
	for(i = 1; i <= N; i ++)
	{
		fin >> x;
		S[i] = S[i - 1] + x;
	}
	bestSum = -2000000;
	for(i = 1; i <= N; i ++)
	{
		best = S[i] - minim;
		if(minim > S[i])
			minim = S[i], poz = i;
		if(best > bestSum)
		{
			bestSum = best;
			idx_start = poz + 1;
			idx_final = i;
		}
	}
	int sum = 0;
	//for(i = idx_start ; sum != bestSum; i ++)
	//	sum = sum + A[i];
	//idx_final = i - 1;
	fout << bestSum << " " << idx_start << " " << idx_final;
	return 0;
}