#include "stdio.h" int n,a[100],s[101]; int max[100][100],min[100][100]; int main() { int i,j,k; scanf("%d",&n); s[0]=0; for(i=0;i<n;i++) { scanf("%d",&a[i]); s[i+1]=s[i]+a[i]; } for(i=1;i<n;i++) { for(j=i-1;j>=0;j--) { max[j][i]=max[j][j]+max[j+1][i]+s[i+1]-s[j]; min[j][i]=min[j][j]+min[j+1][i]+s[i+1]-s[j]; for(k=j+1;k<i;k++) { if(max[j][k]+max[k+1][i]+s[i+1]-s[j]>max[j][i]) max[j][i]=max[j][k]+max[k+1][i]+s[i+1]-s[j]; if(min[j][k]+min[k+1][i]+s[i+1]-s[j]<min[j][i]) min[j][i]=min[j][k]+min[k+1][i]+s[i+1]-s[j]; } } } printf("%d\n%d\n",min[0][n-1],max[0][n-1]); return 0; } /************************************************************** Problem: 2116 User: admin Language: C Result: Accepted Time:31 ms Memory:1224 kb ****************************************************************/