这是一个简单DP,其实我感觉就是类似前缀和的一个东西。
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int w[100010],dp[100010];
int main(){
int n,sum=0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&w[i]);
dp[i]=w[i];
}
for(int i=2;i<=n;i++){
if(dp[i-1]>0){
dp[i]+=dp[i-1];
}
}
sum=-1;
for(int i=1;i<=n;i++){
sum=max(sum,dp[i]);
}
printf("%d\n",sum);
return 0;
}