#include<bits/stdc++.h>
#define r(i,n) for(int i=0;i<n;i++)
using namespace std;
#define int long long

int dp[404][404],A[444];
int n,a[404];

int dfs(int l,int r){
  if(l==r)return 0;
  if(dp[l][r]!=-1)return dp[l][r];
  int res=1e15;
  for(int i=l;i<r;i++){
    res=min(res,dfs(l,i)+dfs(i+1,r)+A[i+1]-A[l]+A[r+1]-A[i+1]);
  }
  return dp[l][r]=res;
}

signed main(){
  memset(dp,-1,sizeof(dp));
  cin>>n;
  r(i,n)cin>>a[i],A[i+1]=a[i];
  r(i,n)A[i+2]+=A[i+1];
  cout<<dfs(0,n-1)<<endl;
}