Cod sursa(job #1461108)

Utilizator ArkinyStoica Alex Arkiny Data 14 iulie 2015 18:52:44
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<fstream>
using namespace std;

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

#define MAX 6000001

int N,A[MAX],D[MAX];

int main()
{
	int N;
	in>>N;
	for(int i=1;i<=N;i++)
		in>>A[i];

	int i,j,max,l=1,r=1,S,l_max,r_max;
	D[1]=A[1];
	max=D[1];
	l_max=1;
	r_max=1;
	for(i=2;i<=N;i++)
	{
		if(A[i] + A[i-1] > D[i-1] + A[i])
		{
			D[i]=A[i] + A[i-1];
			l=i-1;
			r=i;
		}
		else
		{
			D[i]=D[i-1] + A[i];
			++r;
		}

		if(D[i] > max)
		{
				l_max=l;
				r_max=r;
				max=D[i];
		}

	}
	out<<max<<" "<<l_max<<" "<<r_max;
	return 0;
}