#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
int n, a[N], f[205][205], ans = INT_MAX, s[N];
int main(){
scanf("%d", &n);
for(int i = 1; i <= n; i ++){
scanf("%d", &a[i]);
a[i + n] = a[i];
}
memset(f, 0x3f, sizeof(f));
for(int i = 1; i <= 2 * n; i ++)
s[i] = a[i] + s[i - 1], f[i][i] = 0;
for(int i = 2; i <= n; i ++){
for(int j = 1; j <= n; j ++){
for(int k = j; k < j + i - 1; k ++)
f[j][j + i - 1] = min(f[j][j + i - 1], f[j][k] + f[k + 1][j + i - 1]);
f[j][j + i - 1] += s[j + i - 1] - s[j - 1];
}
}
for(int i = 1; i <= n; i ++)
ans = min(ans, f[i][i + n - 1]);
printf("%d\n", ans);
memset(f, 0, sizeof(f));
ans = -1;
for(int i = 1; i <= 2 * n; i ++)
f[i][i] = 0;
for(int i = 2; i <= n; i ++){
for(int j = 1; j <= n; j ++){
for(int k = j; k < j + i - 1; k ++)
f[j][j + i - 1] = max(f[j][j + i - 1], f[j][k] + f[k + 1][j + i - 1]);
f[j][j + i - 1] += s[j + i - 1] - s[j - 1];
}
}
for(int i = 1; i <= n; i ++)
ans = max(ans, f[i][i + n - 1]);
printf("%d", ans);
return 0;
}