Cod sursa(job #404760)

Utilizator shinerainBarbu Mada shinerain Data 26 februarie 2010 17:33:27
Problema Subsecventa de suma maxima Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
using namespace std;
ifstream f ("ssm.in");
ofstream g ("ssm.out");

int n,a[6000006],smax,i,imax,i1,s,i2,imax2;
int main ()
{f>>n;

	for(i=1;i<=n;i++)
		f>>a[i];
	
	smax=a[1];s=a[1];imax=1;imax2=1;i1=1;
	
	for (i=2;i<=n;i++)
	{if (s+a[i]>a[i])
		{s=s+a[i];
		i2=i;
		}
	else 
		if(s+a[i]<a[i])
		{s=a[i]; 
		i1=i;
		i2=i;
		}
		
	if (smax<s)
	{smax=s; imax=i1;imax2=i2;}
	
	if(smax==s)
		if (imax2-imax>i2-i1)
			{imax2=i2;imax=i1;}
	}
	
	
	g<<smax<<" "<<imax<<" "<<imax2;
return 0;
}