Cod sursa(job #648598)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 13 decembrie 2011 19:55:25
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <cstdio>
#include <iostream>
using namespace std;

int best,v[300];


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);
		v[i]=nr;
		//s[i]=nr+s[i-1];
		if(v[i]>=0 && best<0 )
		{
			best=v[i];
			ii=i;
			jj=i;
			if(best>maxim){ maxim=best;  lstanga=jj; }
		}
		else 
			if(best+v[i]>v[i])
			{
				
				jj++;
				best=best+v[i];
				if(maxim<best)
				{
					maxim=best;
					lstanga=jj;
				}
		/*		else
				{
					ii=i;
					jj=i;
					
				}*/
			}
			else 
			{
				best=v[i];
				if(maxim<best){ maxim=best; lstanga=jj; }
				ii=i;
				jj=i;
			}
	//	best[i]=max(best[i-1]+v[i],v[i]);	
		
		
		
	}
	//for(int i=1;i<=n;i++) cout<<" best : "<<best[i]<<endl;
	cout<<maxim<<" "<<ii<<" "<<lstanga;
	return 0;
}