Cod sursa(job #478766)

Utilizator a.stanciuStanciu Adrian a.stanciu Data 20 august 2010 12:31:24
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>

using namespace std;

#define N 6000000

int v[N];

ifstream f("ssm.in", ios::in);		
ofstream g("ssm.out", ios::out);

void ssm(int n)
{
	int i, s = v[0], max = v[0], ok = 0, aux;
	int start = 0, stop = 0;
	for (i = 1; i < n; i++)
	{
		aux = max + v[i];
		if (aux > v[i])
			max = aux;
		else
		{
			max  = v[i];
			ok = i;
			while (v[ok - 1] == 0) ok--;
		}
		if (max > s)
		{
			s = max;
			stop = i;
			start = ok;
		}
	}
	g << s << " " <<  start + 1 << " " <<  stop + 1;
}

int main()
{
	int n, i;

	f >> n;
	for (i = 0; i < n; i++)
		f >> v[i];

	ssm(n);

	return 0;
}