Cod sursa(job #1126213)

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

using namespace std;

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

int n, sume[6000005], i, j, a, maxim = -2000000000, sum, imax, jmax, 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;
			imax = i;
			c = jmax;
		}
		else
			if (sum == maxim) 
			{
				if(c > jmax) jmax = c;
				else 
					if (c == jmax) 
					{
						if((jmax - imax) > (c - imax))
							jmax = c;
					}
			}
		if (sume[i] < minim) 
		{
			minim = sume[i];
			jmax = i+1;
		}
		}
	g << maxim << " " << jmax << " " << imax;
}