Cod sursa(job #493792)

Utilizator gabipurcaruGabi Purcaru gabipurcaru Data 19 octombrie 2010 16:36:06
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
// infoarena: problema/ssm //
#include <fstream>
#define MAXN 6000000
#define MAXS (1<<30)
using namespace std;

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

int n,x[MAXN],s[MAXN],m[MAXN],i,j,minim,sol,s1,s2;

int main()
{
	in>>n;
	for(i=1; i<=n; i++)
		in>>x[i];
	
	for(i=1; i<=n; i++)
		s[i] = s[i-1] + x[i];
	
	minim = s[1]; sol = s[1];
	for(i=1; i<=n; i++)
	{
		if(sol < (s[i] - minim))
			sol = s[i] - minim, s2 = i;
		if(minim > s[i])
			minim = s[i], s1 = i+1;
	}
	
	out<<sol<<' '<<s1<<' '<<s2;
	
	return 0;
}