Cod sursa(job #793846)

Utilizator Ionut228Ionut Calofir Ionut228 Data 4 octombrie 2012 14:44:46
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<fstream>
using namespace std;

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

int n,i,r,maxim,y,z,s[6000001],mins[6000001];

int main ()
{
	f>>n;
	f>>r;
	s[1]=r;
	mins[1]=r;
	maxim=r;
	for(i=2;i<=n;i++)
	{
		f>>r;
		s[i]=r+s[i-1];
		if(s[i]<mins[i-1])
			mins[i]=s[i];
		else
			mins[i]=mins[i-1];
		if((s[i]-mins[i-1])>maxim)
		{
			maxim=s[i]-mins[i-1];
			z=i;
		}
	}
	for(i=1;i<=z;i++)
		if((s[z]-s[i])==maxim)
		{
			y=i+1;
			break;
		}
	g<<maxim<<" "<<y<<" "<<z;
	f.close();g.close();
	return 0;
}