#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3+10;
int a[maxn],f[maxn][maxn],g[maxn][maxn],sum[maxn],sum1[maxn];
int minn(int a,int b) {
return a < b?a:b;
}
int main() {
int n;
cin >> n;
for(int i = 1;i <= 2*n;i++) {
for(int j = 1;j <= 2*n;j++) {
g[i][j] = 1e9+10;
}
}
for(int i = 1;i <= n;i++) {
cin >> a[i];
}
for(int i = n+1;i <= 2*n;i++) {
a[i] = a[i-n];
}
for(int i = 1;i <= 2*n;i++) {
sum[i] = a[i] + sum[i-1];
sum1[i] = a[i] + sum1[i-1];
cout << sum[i] << endl;
}
for (int len = 2; len <= n; len++) {
for (int i = 1; i <= 2 * n - len; i++) {
int j = len + i - 1;
for (int k = i; k < j; k++) {
f[i][j] = max(f[i][j], f[i][k] + f[k + 1][j] + sum[j] - sum[i - 1]);
}
}
}
for (int len = 2; len <= n; len++) {
for (int i = 1; i <= 2 * n - len; i++) {
int j = len + i - 1;
for (int k = i; k < j; k++) {
g[i][j] = minn(g[i][j], g[i][k] + g[k + 1][j] + sum1[j] - sum1[i - 1]);
}
}
}
int Max = -1e9-10,Min = 1e9+10;
for(int i = 1;i <= n;i++) {
Max = max(f[i][i+n-1],Max);
Min = minn(g[i][i+n-1],Min);
}
cout << Min << endl << Max;
return 0;
}