1 n = length[p] - 1 2 for i = 1 to n 3 do m[i,i] = 0 4 for l = 2 to n 5 do for i = 1 to n - l + 1 6 do j = i + l -1 7 m[i,j] = infinity 8 for k = i to j-1 9 do q = m[i,k] + m[k+1,j] + pi-1pkpj 10 if q =m[i,j] 11 then m[i,j] = q 12 s[i,j] = k 13 return m and s