文章
39
粉丝
74
获赞
1
访问
20.5k
#include <stdio.h>
#include <stdlib.h>
long long n;
long long a[100000];
long long dp[100000]={0};
long long max(long long a ,long long b){
if(a>=b)return a;
else return b;
}
int main()
{
while(scanf("%lld",&n)!=EOF){
//dp[i]是以a[i]为结尾的最大字段和
long long sum;
for(long long i=0;i<n;i++)scanf("%lld",&a[i]);
sum=a[0];
dp[0]=a[0];
for(long long i=1;i<n;i++){
dp[i]=max(dp[i-1]+a[i],a[i]);
if(dp[i]>sum)sum=dp[i];
}
printf("%lld\n",sum);
}
return 0;
}
登录后发布评论
暂无评论,来抢沙发