30,621
社区成员
发帖
与我相关
我的任务
分享#include<bits/stdc++.h>
using namespace std;
long long a[100000],n,ans[100000];
int dfs(long long k){
if(k==n)return 0;
if(ans[k]+a[k+1]>ans[k+1]){
ans[k+1]=ans[k]+a[k+1];
dfs(k+1);
}
return 0;
}
int main(){
cin>>n;
for(long long i=1;i<=n;i++){
cin>>a[i];
ans[i]=a[i];
}
for(long long i=1;i<=n;i++)dfs(i);
long long MAX=-99999999;
for(long long i=1;i<=n;i++)MAX=max(MAX,ans[i]);
cout<<MAX;
}
dfs加记忆化