Cod sursa(job #648644)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 13 decembrie 2011 21:50:33
Problema Subsecventa de suma maxima Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <cstdio>
#include <iostream>
using namespace std;

int best;


int main()
{
	int n,maxim=-1<<30,ii=0,jj=0,lstanga;
	freopen("ssm.in","r", stdin);
	freopen("ssm.out","w",stdout);
	
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		
		int nr;
		scanf("%d",&nr);
		//s[i]=nr+s[i-1];
		if(nr>0 && best<0 )
		{
			best=nr;
			ii=i;
			jj=i;
			if(best>=maxim){ maxim=best;  lstanga=jj; }
		}
		else 
			if(best+nr>nr)
			{
				
				//jj=i;
				//jj++;
				best=best+nr;
				if(maxim<=best)
				{
					maxim=best;
					lstanga=i;
				}
		/*		else
				{
					ii=i;
					jj=i;
					
				}*/
			}
			else 
			{
				ii=i;
				jj=i;
				best=nr;
				if(maxim<=best){ maxim=best; lstanga=jj; }
				
			}
	//	best[i]=max(best[i-1]+v[i],v[i]);	
		
		
		
	}
	//cout<<" best : "<<best<<endl;
	cout<<maxim<<" "<<ii<<" "<<lstanga;
	return 0;
}