Cod sursa(job #662327)

Utilizator whoasdas dasdas who Data 16 ianuarie 2012 15:38:38
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdlib.h>
#include <stdio.h>
#include <fstream>
//#include <iostream>
using namespace std;
int main()
{
	int n, *a, s, l, i, ii, smax, lmax;
	
	ifstream fin("ssm.in");
	ofstream fout("ssm.out");

	fin>>n;
	a = (int*)malloc(n*sizeof(int));		

	for(i = 0; i<n; i++)
		fin>>a[i];

	smax = s = a[0];
	lmax = l = 1;
	ii = 0;
	
	for(i = 1; i < n; i++)
	{		
		if(s >= 0)
		{
			s += a[i];
			l++;
		}
		else
		{
			s = a[i];
			l = 1;			
			ii = i;
		}
		
		if(s > smax)
		{
			smax = s;
			lmax = l;
		}		
			
	}

	fout<<smax<<" "<<ii + 1<<" "<<ii + lmax;
	//cin.get();
	free(a);	
	return 0;
}