#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<queue>
#include<iomanip>
#include<algorithm>
using namespace std;
int n,a[410],s[410][410],dmaxn[410][410],dminn[410][410],maxn=-0x7ffffff,minn=0x7fffffff;
int main()
{
freopen("shitou.in","r",stdin);
freopen("shitou.out","w",stdout);
cin>>n;
memset(dmaxn,-1,sizeof(dmaxn));
memset(dminn,0x3f,sizeof(dminn));
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
s[i][i]=a[i];
dmaxn[i][i]=0;
dminn[i][i]=0;
}
int c;
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
s[i][j]=s[i][j-1]+a[j];
for(int i=n;i>=1;i--)
for(int j=i-1;j>=1;j--)
s[i][j]=s[i][n]+s[1][j];
for(int i=2;i<=n;i++) dminn[i][i-1]=s[i-1][i];
dminn[n][1]=dmaxn[n][1]=s[n][1];
for(int i=n;i>=1;i--)
for(int j=(i+1)%n;j<=n;j++)
{
for(int k=i;k<j;k++)
{
dminn[i][j]=min(dminn[i][j],dminn[i][k]+dminn[k+1][j]+s[i][j]);
dmaxn[i][j]=max(dmaxn[i][j],dmaxn[i][k]+dmaxn[k+1][j]+s[i][j]);
}
}
for(int i=n;i>=1;i--)
for(int j=i-1;j>=1;j--)
{
int k=i;
int x=i-j;
int kk=0;
while(x--)
{
kk=0;
if(k==n)
{
dminn[i][j]=min(dminn[i][j],0+dminn[1][j]+s[i][j]);
kk=1;
k=(k+1)%n;
}
if(kk=0)
{
dminn[i][j]=min(dminn[i][j],dminn[i][k+1]+dminn[k][j]+s[i][j]);
k++;
}
else
{
dminn[i][j]=min(dminn[i][j],dminn[i][k]+dminn[k+1][j]+s[i][j]);
}
}
}
for(int k=1;k<n;k++)
{
dminn[1][n]=min(dminn[1][n],dminn[n][k]+dminn[k+1][n-1]+s[1][n]);
}
cout<<dminn[1][n]<<endl;
cout<<dmaxn[1][n]<<endl;
fclose(stdin);
fclose(stdout);
return 0;
}