#include<bits/stdc++.h>
using namespace std;
const int maxn = 205;
int n, a[maxn * 2];
int sum[maxn * 2][maxn * 2], f[maxn * 2][maxn * 2];
void calc_sum() {
for (int i = 1; i <= 2 * n; i++) {
sum[i][i] = a[i];
for (int j = i + 1; j <= 2 * n; j++) {
sum[i][j] = sum[i][j - 1] + a[j];
}
}
}
int get_min_score() {
for(int i=1; i<=n; i++) f[i][i]=0;
calc_sum();
for(int len=2;len<=n;len++){
for(int i=1;i<=n-len+1;i++){
int j=i+len-1;
f[i][j]=INT_MAX;
for(int k=i;k<=j-1;k++){
if(f[i][j]>f[i][k]+f[k+1][j]+sum[i][j])
f[i][j]=f[i][k]+f[k+1][j]+sum[i][j];
}
}
}
return f[1][n];
}
int get_max_score() {
memset(f,0,sizeof f);
for(int i=1; i<=n; i++)f[i][i]=0;
calc_sum();
for(int len=2;len<=n;len++){
for(int i=1;i<=n-len+1;i++){
int j=i+len-1;
f[i][j]=INT_MIN;
for(int k=i;k<=j-1;k++){
if(f[i][j]<f[i][k]+f[k+1][j]+sum[i][j])
f[i][j]=f[i][k]+f[k+1][j]+sum[i][j];
}
}
}
return f[1][n];
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
a[n + i] = a[i];
}
calc_sum();
cout << get_min_score()-1 << '\n';
cout << get_max_score() << '\n';
return 0;
}
就对了第一个样例QWQ