На рис. 6, 7 представлена функция OptimalMD, которая реализует алгоритм динамического программирования для решения задачи о расстановке скобок.
Рис. 6. Прототип функции OptimalMD
Рис. 7. Реализация функции OptimalMD
Функция OptimalMD имеет три параметра: n (общее количество перемножаемых матриц), M (массив размерностью n, содержащий размерности матриц), а также выходной параметр s (двумерный массив размерностью n, содержащий точки разрыва).
Структура функции OptimalMD практически идентична функции OptimalM, описанной в подразделе 7.1.2. Главное отличие – применение массива M (работа с ним осуществляется с помощью макроса OPTIMAL_M) для хранения промежуточных вычислений.