#include<iostream>
using namespace std;
const int N=2010;
int sum[N];
int n;
int dia[N];
int s[N][N];
int dp[N][N];
void init()
{
int i;
sum[0]=0;
memset(dp,0xf,sizeof(dp));
for(i=1;i<=n;i++)
{
sum[i]=sum[i-1]+dia[i];
s[i][i]=i;
dp[i][i]=0;
}
for(i=n+1;i<n+n;i++)
{
dia[i]=dia[i-n];
sum[i]=sum[i-1]+dia[i];
s[i][i]=i;
dp[i][i]=0;
}
}
int main()
{
int i,j,k,t;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
{
scanf("%d",&dia[i]);
}
int mi=0xffffff;
init();
// for(j=2;j<=n;j++)
// for(i=1;i<j;i++)
// for(k=s[i][j-1];k<=s[i+1][j];k++)
// if(dp[i][j]>=dp[i][k-1]+dp[k][j]+sum[j]-sum[i-1])
// {
// dp[i][j]=dp[i][k-1]+dp[k][j]+sum[j]-sum[i-1];
// s[i][j]=k;
// }
int des;
for(j=2;j<=n;j++)
for(i=1;i+j<=n+n;i++)
{
des=i+j-1;
for(k=s[i][des-1];k<=s[i+1][des];k++)
if(dp[i][des]>=dp[i][k-1]+dp[k][des]+sum[des]-sum[i-1])
{
dp[i][des]=dp[i][k-1]+dp[k][des]+sum[des]-sum[i-1];
s[i][des]=k;
}
}
for(i=1;i<=n;i++)
mi=mi<dp[i][i+n-1]?mi:dp[i][i+n-1];
cout<<mi<<endl;
}
return 0;
}