最大字段和

最大字段和:
例 题

但凡我的b变成负数或0,那么我显然让其变成a[i]价值更高

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
#include<stack>
#include<vector>
#include<iomanip>

using namespace std;
int n,a[1000010];
int b,ans=-99999999;

long long read(){
	long long x=0,h=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')h=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+(long long)(ch-'0');ch=getchar();}
	return x*h;
}

int main(){
	n=read();
	for(int i=1;i<=n;i++)a[i]=read();
	
	for(int i=1;i<=n;i++){
		if(b>0){
			b+=a[i];
		}
		else b=a[i];
		ans=max(b,ans);
	}
	cout<<ans<<endl; 
	return 0;
}
posted @ 2021-11-08 10:03  Charisk_FOD  阅读(44)  评论(0)    收藏  举报