Cod sursa(job #490645)

Utilizator Cosmin1490Balan Radu Cosmin Cosmin1490 Data 7 octombrie 2010 11:20:22
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>

#define NMAX 6000009

using namespace std;

int N;
int A[NMAX];

void citire()
{
     fstream fin("ssm.in",ios::in);
             fin>>N;
     for(int i=1;i<=N;i++)
             fin>>A[i];
             
     fin.close();
     
}


int main(int argc,char*argv[])
{
	citire();
	
	int MAX=A[1];
	int IDX=1;
	int L=1;
	
	int max=A[1];
	int inc=1;
	int l=1;
	
	for(int i=2;i<=N;i++)
	{
		if(A[i]> A[i]+max)
		{
			max=A[i];
			inc=i;
			l=1;
				if(max>MAX)
			{
				MAX=max;
				IDX=inc;
				L=l;
			}
		}
		else if( A[i] <= A[i] +max)
		{
			max+=A[i];
			l++;
			if(max>MAX)
			{
				MAX=max;
				IDX=inc;
				L=l;
			}
		}
	}
	fstream fout("ssm.out",ios::out);
	fout<<MAX<<" "<< IDX << " " << IDX+L-1<<"\n";;
	
	

}