Cod sursa(job #966701)

Utilizator sorin2kSorin Nutu sorin2k Data 26 iunie 2013 14:47:09
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<iostream>
#include<fstream>
using namespace std;

const int MAXN = 5000000;
int a[MAXN], best[MAXN];

int main()
{

	ifstream fin("ssm.in");
	ofstream fout("ssm.out");
	int n, i, start, startaux, end, sum;
	fin >> n;
	for(i = 0; i < n; i++)
		fin >> a[i];
	best[0] = a[0];
	start = 0; end = 0;
	sum = a[0];
	for(i = 1; i < n; i++)
	{
		best[i] = a[i];
		if(best[i] < best[i] + best[i-1])
		{
			best[i] = best[i] + best[i-1];
			if(sum < best[i])
			{
				sum = best[i];
				start = startaux;
				end = i;
			}
		}
		else
		{
			startaux = i;
		}
	}
	fout << sum << " " << start + 1 << " " << end + 1<< endl;
	return 0;
}