#include <bits/stdc++.h>
using namespace std;
int n,s[1001],dp[1001][1001];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>s[i];
}
for(int i=1;i<=n;i++){
for(int j=i;j>=1;j--){
int sum=0;
for(int k=j;k<=i;k++){
sum+=s[k];
}
if(j+1==i){
dp[j][i]=sum;
}
else{
dp[j][i]=min(dp[j+1][i],dp[j][i-1])+sum;
}
}
}
cout<<dp[1][n]<<endl;
return 0;
}
样例没过。其实本来是要提交这道题的。程序写出来的表和老师的表一样,但样例没过。