#include<iostream>
#include<cstring>
using namespace std;
#define maxn 210
int a[maxn],f[maxn][maxn],g[maxn][maxn],m[maxn][maxn],sum[maxn];
int n;
int main(){
memset(g,0x3f,sizeof(g));
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i+n]=a[i];
}
for(int i=1;i<=2*n;i++){
sum[i]=sum[i-1]+a[i];
f[i][i]=g[i][i]=a[i],m[i][i]=i;
}
for(int l=1;l<n;l++){
for(int i=1,j=l+1;j<=2*n;i++,j++){
f[i][j]=max(f[i-1][j],f[i][j-1])+sum[j]-sum[i-1];
for(int k=m[i][j-1];k<=m[i+1][j];k++){
if(g[i][j]>g[i][k]+g[k+1][j]+sum[j]-sum[i-1]){
g[i][j]=g[i][k]+g[k+1][j]+sum[j]-sum[i-1];
m[i][j]=k;
}
}
}
}
int mx=-9999,mn=9999;
for(int i=1;i<=n;i++){
mx=max(mx,f[i][i+n-1]);
mn=min(mn,g[i][i+n-1]);
}
cout<<mn<<endl;
cout<<mx;
return 0;
}