#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
typedef long long int llint;
llint dp[405][405],arr[405],n;
llint rek(int l,int r) {
	if(l==r) return 0;
	if(dp[l][r]!=-1) return dp[l][r];
	llint ret=1e18,mini=min(arr[l],arr[r]),sum1=0,sum2=0;
	for(int i=l;i<=r;i++) sum1+=arr[i];
	for(int i=l;i<r;i++) {
		sum2+=arr[i];
		ret=min(ret,(rek(l,i)+rek(i+1,r)+sum1));
	}
	dp[l][r]=ret;
	return ret;
}
int main()
{
	cin >> n;
	for(int i=0;i<n;i++) {
		cin >> arr[i];
	}
	memset(dp,-1,sizeof(dp));
	cout << rek(0,n-1);
	return 0;
}
