▁= ▁ 0 ; ▁i ▁< ▁n ▁- ▁len Min us One ; ▁i ++) ▁{ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁int ▁j ▁= ▁i ▁+ ▁len Min us One ; ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁m [ i ][ j ] ▁= ▁Integer . MAX _ VALUE ; ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁for ▁( int ▁k ▁= ▁i ; ▁k ▁< ▁j ; ▁k ++) ▁{ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁ ▁int ▁cost ▁= ▁m [ i ][ k ] ▁+ ▁m [ k + 1 ][ j ] ▁+ ▁dim s [ i ]* dim s [ k + 1 ]* dim s [ j + 1 ]; ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁ ▁if ▁( cost ▁< ▁m [ i ][ j ]) ▁{ ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁ ▁m [ i ][ j ] ▁= ▁cost ; ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁ ▁s [ i ][ j ] ▁= ▁k ; ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁ ▁} ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁} ▁▁▁▁▁▁▁▁▁▁▁▁ ▁} ▁▁▁▁▁▁▁▁ ▁} ▁▁▁▁ ▁} ▁▁▁▁▁ ▁public ▁void ▁print Opt imal Par enth es izations () ▁{ ▁▁▁▁▁▁▁▁ ▁boolean [] ▁in A Result ▁= ▁new ▁boolean [ s . length ]; ▁▁▁▁▁▁▁▁ ▁print Opt imal Par enth es izations ( s , ▁ 0 , ▁s . length ▁- ▁ 1 , ▁in A Result ); ▁▁▁▁ ▁} ▁▁▁▁▁ ▁void ▁print Opt imal Par enth es izations ( int [] [] s , ▁int ▁i , ▁int ▁j , ▁ ▁/* ▁for ▁pretty ▁printing : ▁*/ ▁boolean [] ▁in A Result ) ▁{ ▁▁▁▁▁▁▁▁ ▁if ▁( i ▁!= ▁j ) ▁{ ▁▁▁▁▁▁▁▁▁▁▁▁ ▁print Opt imal Par enth es izations ( s , ▁i , ▁s [