#include<iostream> #include<algorithm> using namespace std; #define MAX 205 int stone[MAX];int n; int f[MAX][MAX]; int getSum(int l,int r){ int sum=0; for(int i=l;i<=r;++i){ sum+=stone[i]; } return sum; } int solve(){ int v,i,j,k; for(i=0;i<n;++i){ f[i][i]=0; } for(v=1;v<n;++v){ for(i=0;i<n-v;++i){ j=i+v; f[i][j]=999999999; for(k=i;k<j;++k){ f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+getSum(i,j)); } } } return f[0][n-1]; } int main(int argc, char *argv[]) { cin>>n; for(int i=0;i<n;++i)cin>>stone[i]; cout<<solve()<<endl; return 0; }