Cod sursa(job #1426279)

Utilizator daniel.grosuDaniel Grosu daniel.grosu Data 29 aprilie 2015 12:46:05
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 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])
		{
			sum+=s[i];
		}
		else
		{
			if(s[i]!=0){
				sum=s[i];
				start=i;
			}
		}
		if(sum>msum)
		{
			mend=i;
			mstart=start;
			msum=sum;
		}
	}
	
	fout<<msum<<" "<<mstart<<" "<<mend;
	
	return 0;
}