Cod sursa(job #793837)

Utilizator ArmandNMArmand Nicolicioiu ArmandNM Data 4 octombrie 2012 12:48:32
Problema Subsecventa de suma maxima Scor 75
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int i,s,v[6000010],sp[6000010],minsp[6000010],n,minim,maxim,y,z;
int main()
{
	f>>n;
	f>>v[1];
	sp[1]=v[1];
	minsp[1]=v[1];
	for (i=2;i<=n;i++)
	{
		f>>v[i];
		sp[i]=sp[i-1]+v[i];
		if (sp[i]<minsp[i-1]) minsp[i]=sp[i]; else minsp[i]=minsp[i-1];
	}
	for (i=1;i<=n;i++)
	{
		//maxim=s[i]-s[i-1];
		if((sp[i]-minsp[i-1])>maxim)
			{
				maxim=sp[i]-minsp[i-1];
				z=i;
			}
	}
	i=z;
	while (s!=maxim)
	{
		s=s+v[i];
		i--;
		y=i+1;
	}
	g<<maxim<<" "<<y<<" "<<z;
	f.close();g.close();
	return 0;
}