#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
long long int dp[10010];
int v[10010];
int s[10010];
int main(){
int n;
//freopen("in.txt","r",stdin);
scanf("%d",&n);
dp[0] = 0;
int end =1;
long long int sum = -10010;
for(int i = 1;i<=n;i++){
cin>>v[i];
if(dp[i-1]+v[i]>v[i]){
dp[i] = dp[i-1] + v[i];
s[i] = s[i-1];
if(dp[i]>sum){
end = i;
sum = dp[i];
}
}
else{
dp[i] = v[i];
s[i] = i;
if(dp[i]>sum){
end = i;
sum = dp[i];
}
}
}
if(sum<0){
cout<<0<<" "<<v[1]<<" "<<v[n]<<'\n';
}
else{
cout<<sum<<" "<<v[s[end]]<<" "<<v[end]<<'\n';
}
return 0;
}
A1007 Maximum Subsequence Sum 動態規劃
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.