Cod sursa(job #903085)

Utilizator DevilShadowJunc Raul Cosmin DevilShadow Data 1 martie 2013 18:26:33
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
#define maxN 6000005
#define max(a, b) a > b ? a : b
#define infinite 1<<30
using namespace std;
ifstream f ("ssm.in");
ofstream g ("ssm.out");

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

int main()
{
	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;
}