Cod sursa(job #1126279)

Utilizator negrea.andreiAndrei Negrea negrea.andrei Data 26 februarie 2014 22:21:22
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
# include <fstream>

using namespace std;

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

int n, sume[6000005], i, j, a, maxim = -2000000000, sum, startSecv, endSecv, minim = 2000000000, c;

int main()
{
	f >> n;
	for (i = 1; i <= n; i++)
	{
		f >> a;
		sume[i] = sume[i-1] + a;
	}
	for (i = 1; i <= n; i++)
	{
		sum = sume[i] - minim;
		if(sum > maxim) 
		{
			maxim = sum;
			endSecv = i;
			startSecv = c;
		}
		else
			if (sum == maxim) 
			{
				if(c > endSecv) c = endSecv;
				else 
					if (c == endSecv) 
					{
						if((endSecv - startSecv) > (c - endSecv))
							c = endSecv;
					}
			}
		if (sume[i] < minim) 
		{
			minim = sume[i];
			endSecv = i+1;
		}
		}
	g << maxim << " " << c << " " << startSecv;
}