#include <bits/stdc++.h>
using namespace std;
long long ar[402];
long long pre[402];
long long dp[402][402];
long long fun(int l,int h)
{
	if(l==h)
	return 0;
	if(l+1==h)
	return dp[l][h]=ar[l]+ar[h];
	if(dp[l][h]!=-1)
	return dp[l][h];
	dp[l][h]=1e18;
	for(int i=l;i<h;i++)
	dp[l][h]=min(dp[l][h],fun(l,i)+fun(i+1,h)+pre[h+1]-pre[l]);
	return dp[l][h];
}
int main() {
	// your code goes here
	int n,i;
	cin>>n;
	pre[0]=0;
	memset(dp,-1,sizeof(dp));
	for(i=0;i<n;i++)
	{
		cin>>ar[i];
		pre[i+1]=pre[i]+ar[i];
	}
	cout<<fun(0,n-1);
	return 0;
}
