Cod sursa(job #1246339)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 20 octombrie 2014 22:38:33
Problema Subsecventa de suma maxima Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.94 kb
#include <fstream>
#define NMAX 100000
#define cin f
#define cout g

using namespace std;

int numarElemente, tablou[NMAX];

ifstream f("ssm.in");
ofstream g("ssm.out");

void citesteTablou(int &numarElemente, int tablou[])
{

	cin>>numarElemente;
	for (int i=0; i<numarElemente; ++i) cin>>tablou[i];

}

void subsecventaDeSumaMaxima(int numarElemente, int tablou[])
{
	int sumaCurenta=0, startCurenta=0, sumaMaxima=tablou[0], startMaxim=0, finalMaxim=0, i;

	for (i=0; i<numarElemente; ++i)
	{
		sumaCurenta+=tablou[i];

		if (sumaCurenta>0)
		{
			if (sumaCurenta>=sumaMaxima)
			{
				sumaMaxima=sumaCurenta;
				startMaxim=startCurenta;
				finalMaxim=i;
			}
		}
		else
		{
			sumaCurenta=0;
			startCurenta=i+1;
		}
	}

	cout<<sumaMaxima<<" "<<startMaxim+1<<" "<<finalMaxim+1<<"\n";
}


int main()
{
	citesteTablou(numarElemente, tablou);

	subsecventaDeSumaMaxima(numarElemente, tablou);

	return 0;
}