link
int sum[220][220];
int mi[220][220];
int ma[220][220];
int p[220];
int main(){
int N;
cin>>N;
for(int i=1;i<=N;i++){
scanf("%d", p+i);
p[i+N]=p[i];
sum[i][i]=p[i];
sum[i+N][i+N]=p[i];
}
memset(mi,0x3f,sizeof(mi));
for(int i=1;i<=2*N;i++){
mi[i][i]=0;
}
for(int len=2;len<=N;len++){
for(int i=1;len+i-1<2*N;i++){
int j=len+i-1;
for(int k=i;k<j;k++){
sum[i][j]=sum[i][k]+sum[k+1][j];
mi[i][j]=min(mi[i][j],mi[i][k]+mi[k+1][j]+sum[i][j]);
ma[i][j]=max(ma[i][j], ma[i][k]+ma[k+1][j]+sum[i][j]);
}
}
}
int ans1=9999999;
int ans2=0;
for(int i=1;i<=N;i++){
ans1=min(ans1,mi[i][i+N-1]);
ans2=max(ans2,ma[i][i+N-1]);
}
printf("%d
", ans1);
printf("%d
", ans2);
return 0;
}