#include<cstdio>
const int maxn=10010;
int a[maxn],dp[maxn];
int s[maxn]={0};
int main(){
int n;
scanf("%d",&n);
bool flag=false;
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
if(a[i]>=0)flag=true;
}
if(flag==false){
printf("0 %d %d\n",a[0],a[n-1]);
return 0;
}
dp[0]=a[0];
for(int i=1;i<n;i++){
if(dp[i-1]+a[i]>a[i]){
dp[i]=dp[i-1]+a[i];
s[i]=s[i-1];
}else {
dp[i]=a[i];
s[i]=i;
}
}
int k=0;
for(int i=1;i<n;i++){
if(dp[i]>dp[k]){
k=i;
}
}
printf("%d %d %d\n",dp[k],a[s[k]],a[k]);
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交