Cod sursa(job #536387)

Utilizator romircea2010FMI Trifan Mircea Mihai romircea2010 Data 18 februarie 2011 16:48:41
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>

using namespace std;

int a[6000001], n;

int main ()
{
	ifstream f("ssm.in");
	f>>n;
	int i;
	for (i=1; i<=n; i++)
		f>>a[i];
	f.close();
	
	int s, smax, j, imax, l, lmax;
	s=smax=i=imax=l=lmax=0;
	for (j=1; j<=n; j++)
	{
		s=s+a[j];
		l++;
		if (s>=smax)
		{
			if (smax==s && l<lmax)
			{
				imax=i;
				lmax=l;
			}
			else
			{
				smax=s;
				imax=i;
				lmax=l;
			}
		}
		if (s<0)
		{
			s=0; 
			i=j;
			l=0;
		}
	}
	
	ofstream g("ssm.out");
	if (imax==0)
		g<<smax<<" "<<imax<<" "<<imax+lmax;
	else
		g<<smax<<" "<<imax+1<<" "<<imax+lmax;
	g<<"\n";
	g.close();
	
	
	
	return 0;
}