Cod sursa(job #1149015)

Utilizator Andreiii500Andrei Puiu Andreiii500 Data 21 martie 2014 13:30:51
Problema Subsecventa de suma maxima Scor 95
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include<limits.h>
#include<stdio.h>
using namespace std;

// 6000005
#define dim 6000005

int main()
{
	freopen("ssm.in", "r", stdin);
	freopen("ssm.out", "w", stdout);
	
	int n,i,x,s,smax,j,st,dr,stmax,drmax;
	//int v[dim];
	//int s[dim];
	
	scanf("%d", &n);

	smax=INT_MIN;
	
	s=0;
	for(i=1;i<=n;++i)
	{
		scanf("%d", &x);
		
		if(s<0 && x>s)
		{
			s=x;
			st=i;
			dr=i;
		}
		else
		{
			if(s>smax)
			{
				smax=s;
				stmax=st;
				drmax=dr;
			}
			s+=x;
			++dr;
		}
	}
	if(s>smax)
	{
		smax=s;
		stmax=st;
		drmax=dr;
	}
		
		//printf("%d ", x);
		/*if(x>s[i-1]) s[i]=x;
		else s[i]=s[i-1]+x;
		
		for(j=i;j>=1;--j)
		{
			su=s[i]-s[j-1];
			if(su>smax)
			{
				smax=su;
				st=j;
				dr=i;
			}
		}
	}*/
	/*printf("\n");
	for(i=1;i<=n;++i) printf("%d ", s[i]);
	printf("\n");*/
	
	printf("%d %d %d", smax, stmax, drmax);
	
	
	
	return 0;
}