Cod sursa(job #399578)

Utilizator cipri_tomCiprian Tomoiaga cipri_tom Data 20 februarie 2010 18:17:09
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
using namespace std;

#define MAX_N 6000005

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

int s[MAX_N], best[MAX_N];
int n;

int main()
{
	fin >> n;
	int x;
	for ( int i = 1; i <= n; ++i )
	{
		fin >> x;
		s[i] = s[i-1] + x;
	}
	int sum = 0, smax = -2000000000, i1, j1, i2;
	for ( int i = 1; i <= n; ++i )
	{
		if ( smax < s[i] - sum )
		{
			smax = s[i] - sum;
			i1 = i2 + 1;
			j1 = i;
		}
		if ( sum > s[i] )
		{
			sum = s[i];
			i2 = i;
		}
	}
	fout << smax << ' ' << i1 << ' ' << j1 << '\n';
	fin.close();
	fout.close();
	return 0;
}