Cod sursa(job #793840)

Utilizator ArmandNMArmand Nicolicioiu ArmandNM Data 4 octombrie 2012 13:02:26
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int i,s,sp[6000001],minsp[6000001],n,minim,maxim,y,z,v;
int main()
{
	f>>n;
	f>>v;
	sp[1]=v;
	minsp[1]=v;
	for (i=2;i<=n;i++)
	{
		f>>v;
		sp[i]=sp[i-1]+v;
		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;
			}
	}
	//while (s!=maxim)
	//{
	//	s=s+v[i];
	//	i--;
	//	y=i+1;
	//}
	for (i=1;i<=z;i++)
	{
		if (sp[z]-sp[i]==maxim) {y=i+1; break; }
	}
	g<<maxim<<" "<<y<<" "<<z;
	f.close();g.close();
	return 0;
}