#include<iostream>
#include<string.h>
#include<windows.h>
//#include<bits/stdc++.h>
using namespace std;
int n,l[1100][1100],i,head[2200],p[2200],ll[1100][1100];
int main(){
int s;
cin>>n;
// memset(ll,0x3f,sizeof(ll));
for(i=1;i<=n;i++){
cin>>head[i];
// p[i]=p[i-1]+head[i];
head[i+n]=head[i];
}
for(i=1;i<=n+n;i++)
p[i]=p[i-1]+head[i];
// for(i=1;i<=n+n;i++){
// cout<<p[i]<<" ";
// }
// cout<<endl;
// for(i=1;i<=2*n-1;i++){
// l[i][i]=0;
// }
int js,j,k;
for(i=1;i<=n;i++){
for(j=1;j<=n*2-i;j++){
js=i+j;
ll[j][js]=0x3f3f3f3f;l[j][js]=0;
for(k=j;k<=js;k++){
l[j][js]=max(l[j][js],l[j][k]+l[k+1][js]);
ll[j][js]=min(ll[j][js],ll[j][k]+ll[k+1][js]);
}
l[j][js]+=p[js]-p[j];
ll[j][js]+=p[js]-p[j];
}
}
// for(i=1;i<=n*2;i++){
// for(j=1;j<=n+n;j++){
// cout<<ll[i][j]<<"\t";
// }cout<<endl;
// }
int orz=-1;s=0x3f3f3f3f;
for(i=1;i<=n;i++){
orz=max(orz,l[i][i+n-1]);
s=min(s,ll[i][i+n-1]);
}
cout<<s<<endl;
cout<<orz<<endl;
//system("pause");
return 0;
}