Cod sursa(job #806727)

Utilizator Ionut228Ionut Calofir Ionut228 Data 3 noiembrie 2012 12:51:56
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
using namespace std;

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

int best[6000001],v[6000001],n,i,a;

void sir ()
{
	int im,jm,s,m;
	f>>a;
	m=a;
	best[1]=a;
	v[1]=a;
	for(i=2;i<=n;i++)
	{
		f>>a;
		v[i]=a+v[i-1];
		if(best[i-1]+a>=a)
			best[i]=best[i-1]+a;
		else
			best[i]=a;
	}
	for(i=1;i<=n;i++)
		if(best[i]>=m)
		{
			jm=i;
			m=best[i];
		}
	for(i=1;i<=jm;i++)
		if((v[jm]-v[i])==m)
		{
			im=i+1;
			break;
		}
	g<<m<<" "<<im<<" "<<jm;
}

int main ()
{
	f>>n;
	sir();
	f.close();g.close();
	return 0;
}