#include<algorithm>
using namespace std;
int stone[1002],sum[1002]={0};
int f[1002][1002]={0},g[1002][1002]={0};
int main()
{
int n;
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>stone[i];
stone[i+n]=stone[i];
}
for (int i=1;i<2*n;i++)
sum[i]=sum[i-1]+stone[i];
for (int i=1;i<2*n;i++) f[i][i]=g[i][i]=0;
for (int k=1;k<n;k++)
for (int i=1;i+k<2*n;i++)//考察i到i+k
{
f[i][i+k]=0;
g[i][i+k]=0x7fffffff;
for (int j=0;j<k;j++) //增量
{
f[i][i+k]=max(f[i][i+k],f[i][i+j]+f[i+j+1][i+k]+sum[i+k]-sum[i-1]),
g[i][i+k]=min(g[i][i+k],g[i][i+j]+g[i+j+1][i+k]+sum[i+k]-sum[i-1]);
//cout<<f[i][i+k]<<" "<<g[i][i+k]<<endl;
}
}
int ans1(0);
int ans2(0x7fffffff);
for (int i=1;i<=n;i++)
ans1=max(ans1,f[i][i+n-1]);
for (int i=1;i<=n;i++)
ans2=min(ans2,g[i][i+n-1]);
cout<<ans2<<endl<<ans1<<endl;
//system("pause");
return 0;
}