Cod sursa(job #664376)

Utilizator stanescu_teodorStanescu Teodor stanescu_teodor Data 20 ianuarie 2012 00:06:55
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>

using namespace std;

int max1,i,n,a[6000000],suma[6000000],poz;
bool ok;

int maxim (int x, int y)
{
	if (x>y) return x;
else 	return y;
}

int main ()
{
	ifstream f ("ssm.in");
	ofstream g ("ssm.out");
	f >>n;
	for (i=1; i<=n; i++)
		f >>a[i];
	for (i=1; i<=n; i++)
		suma[i]=maxim (suma[i-1]+a[i] , a[i]);
	max1=0;
	for (i=1; i<=n; i++)
		if (max1<suma[i]) max1=suma[i],poz=i;
	i=poz;
		ok=true;
	while (i>0)
	{
		if (suma[i]<=0) {g <<max1<<' '<<i+1 <<' '<<poz; ok=false;}
		i--;
	}
	if (ok) g <<max1<<' '<<1 <<' '<<poz;
	return 0;
}