Cod sursa(job #903068)

Utilizator DevilShadowJunc Raul Cosmin DevilShadow Data 1 martie 2013 18:21:35
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream.h>
#include <fstream.h>
#define maxN 6000005
#define max(a, b) a > b ? a : b
#define infinite 1<<30

int n, v[maxN], d[maxN], maxim = - infinite;
int a = 1, b = 1;

int main()
{
	ifstream f ("ssm.in");
	ofstream g ("ssm.out");
	
	f >> n;
	for(int i = 1; i <= n; i ++)
		f >> v[i];
	
	d[1] = v[1];
	for(int i = 2; i <= n; i ++)
	{
		if(d[i - 1] < 0)
			a = i;
		
		d[i] = max(v[i], v[i] + d[i - 1]);
		
		if(maxim < d[i])
			b = i;
		maxim = max(d[i], maxim);
	}
	
	g << maxim << ' ' << a << ' ' << b;
}