len:
for(int len=1;len<n;len++){
for(int i=1;i+len<=n;i++){
int j=i+len;
f[i][j]=f[i+1][j]+a[i];
for(int k=i+1;k<j;k++){
f[i][j]=max(f[i][j],f[i][k-1]*f[k+1][j]+a[k]);
}
}
}
for(int i=n;i>=1;i--){
for(int j=n;j>=1;j--){
f[i][j]=f[i+1][j]+a[i];
for(int k=i+1;k<j;k++){
f[i][j]=max(f[i][j],f[i][k-1]*f[k+1][j]+a[k]);
}
}
}