Cod sursa(job #448176)

Utilizator andrei.sfrentSfrent Andrei andrei.sfrent Data 2 mai 2010 23:46:55
Problema Subsecventa de suma maxima Scor 65
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>

using namespace std;

#define N 6000000

int n;
int v[N + 1];

int main()
{
	ifstream fi("ssm.in");
	ofstream fo("ssm.out");

	fi >> n;
	int i;
	for(i = 1; i <= n; ++i) fi >> v[i];
	
	int inc = 1, sf = 1, ssm = v[1];
	int last_inc = 1;
	int cssm = v[1];
	for(i = 2; i <= n; ++i)
	{
		cssm = cssm + v[i];
		if(cssm < 0)
		{
			last_inc = i;
			cssm = v[i];
		}
		if(cssm > ssm)
		{
			ssm = cssm;
			inc = last_inc;
			sf = i;
		}
	}

	fo << ssm << " " << inc << " " << sf << "\n";

	return 0;
}