Cod sursa(job #662310)

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

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

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

	sm[0]= a[0];
	l[0] = 1;

	imax = 0;
	
	for(i = 1; i < n; i++)
	{
		sm[i] = a[i];
		l[i] = 1;
		if(sm[i-1] > 0)
		{
			sm[i] += sm[i-1];
			l[i] += l[i-1];
		}
		if(sm[imax] < sm[i])
			imax = sm[i];
	}

	fout<< sm[imax]<<" "<<imax-l[imax]+2<<" "<<imax+1;
	//cin.get();
	free(a);
	free(sm);
	return 0;
}