Cod sursa(job #824940)

Utilizator antonioteoZait Teodor Antonio antonioteo Data 27 noiembrie 2012 11:16:08
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>
#define MAXN 6000000
using namespace std;
const char iname[] = "ssm.in";
const char oname[] = "ssm.out";
ifstream fin(iname);
ofstream fout(oname);
int i , N , bestSum = -int(2e9) , mn = 2000000000;
int in , sf , m1 , x;
int s[ MAXN ];
int main()
{
	fin >> N;
	for ( i = 1; i <= N; ++i )
	{
		fin >> x;
		s[ i ] = s[ i - 1 ] + x;
	}
	for ( i = 1; i <= N; ++i )
	{
		if ( bestSum < s[ i ] - mn )
		{
			bestSum = s[ i ] - mn;
			in = m1;
			sf = i;
		}
		if ( mn > s[ i ] )
		{
			mn = s[ i ];
			m1 = i;
		}
	}
	fout << bestSum << ' ' << in + 1 << ' ' << sf << '\n';
	return 0;
}