program AvaliaMultMatrizes;
const MAXN = 10;
var
  i, j, k, h, n, temp: integer;
  d: array[0..MAXN] of integer;
  m: array[1..MAXN, 1..MAXN] of integer;
begin
  write('Numero de matrizes n:'); readln(n);
  write('Dimensoes das matrizes:');
  for i := 0 to n do read(d[i]);
  for i := 1 to n do m[i,i] := 0;
  for h := 1 to n-1 do
    begin
    for i := 1 to n-h do
      begin
      j := i + h;
      m[i,j] := MaxInt;
      for k := i to j-1 do
        begin
        temp := m[i,k] + m[k+1,j] + d[i-1]*d[k]*d[j];
        if temp < m[i,j] then m[i,j] := temp;
        end;
      write(' m[',i:1,',',j:1,']=',m[i,j]);
      end;
    writeln;
    end;
end.

