Cod sursa(job #633787)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 14 noiembrie 2011 19:57:13
Problema Subsecventa de suma maxima Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace  std;

char y[600005];
int s[600005];//,best[100];

int main()
{	
	int n,maxim=-1<<15;
	freopen("ssm.in","r", stdin);
	freopen("ssm.out","w", stdout);
	scanf("%d\n",&n);
	fgets(y, 600005, stdin);
	int j=0;
	for(int i=1;i<=n;i++)
	{
		int nr=0,semn=1;
		if(y[j]=='-'){ semn*=-1; j++;}
		while(y[j]>='0' && y[j]<='9'){	nr=nr*10+y[j]-'0'; j++;}
		nr*=semn;
		s[i]=nr+s[i-1];
		j++;
	}
	//for (int j=1;j<=n;j++) cout<<s[j]<<endl;
	
	for(int i=1;i<=n;i++)
		for(int j=1;j<i;j++)
			if((s[i]-s[j])>maxim) maxim=s[i]-s[j];
	
	//for(int i=1;i<=n;i++)
	//	best[i]=max(best[i-1]+s[i],s[i]);
	printf("%d",maxim);
	
	
	return 0;
}