#include<iostream>
#include<vector>
using namespace std;

int main()
{
	int n;
	cin>>n;
	vector<long long> v(n+1,0);
	for(int i=1;i<=n;i++)
	{
		cin>>v[i],v[i]+=v[i-1];
	}
	vector< vector<long long> >dp;
	dp.assign(n+1,vector<long long>(n+1,1e16) );
	for(int i=1;i<=n;i++) dp[i][i]=0;		
	for(int i=1,j=2;i<=n,j<=n;j++,i++) dp[i][j]=v[j]-v[i-1];
	for(int len=3;len<=n;len++)
	for(int i=1, j=len; j<=n; i++, j++)
	{
		long long tot=v[j]-v[i-1];
		for(int k=i;k<j;k++)
		{
			dp[i][j] = min(dp[i][j], tot+dp[i][k]+dp[k+1][j]);
		}
	}
	cout<<dp[1][n]<<endl;
} 