#include <bits/stdc++.h>
using namespace std;
inline void read(int &x) {
int s=0,w=1;
char c=getchar();
while(c<'0'||c>'9') {
if(c=='-') {
w=-1;
}
c=getchar();
}
while(c>='0'&&c<='9') {
s=s*10+c-'0';
c=getchar();
}
x=s*w;
return;
}
int n;
int a[310];
int s[310];
int dp[310][310];
int main() {
memset(dp,0x7f7f7f7f,sizeof(dp));
read(n);
for(int i=1; i<=n; i++) {
read(a[i]);
s[i]=s[i-1]+a[i];
dp[i][i]=0;
}
for(int i=2;i<=n;i++){
for(int j=1;j<=n-i+1;j++){
int o=j+i-1;
for(int k=j;k<=o;k++){
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+s[j]-s[i-1]);
}
}
}
printf("%d",dp[1][n]);
return 0;
}
必关