Cod sursa(job #1426283)

Utilizator daniel.grosuDaniel Grosu daniel.grosu Data 29 aprilie 2015 12:49:46
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
#define NMAX 6000005
using namespace std;

ifstream fin("ssm.in");
ofstream fout("ssm.out");

long s[NMAX];
int n,i;
long long start, sum, msum, mstart, mend;
int main()
{
	fin>>n;
	for(i=1; i<=n; ++i)
	fin>>s[i];
	
	for(i=1; i<=n; ++i)
	{
		if(sum+s[i]>s[i] || !s[i]==0)
		{
			sum+=s[i];
		}
		else
		{
			sum=s[i];
			start=i;
		}
		if(sum>msum)
		{
			mend=i;
			mstart=start;
			msum=sum;
		}
	}
	
	fout<<msum<<" "<<mstart<<" "<<mend;
	
	return 0;
}