3. Восстановление ответа.
Теперь напишем восстановление ответа.
Точно так же, как и в одномерном случае будем идти на конечной клетке в начальную, на каждом шаге выбирая ту из возможных
предшествующих клеток, для которой значение функции C меньше.
Answer = []
i = n
j = m
while (i, j) != (0, 0):
Answer.append((i, j))
prev_C = min(C[i][j - 1], C[i - 1][j], C[i - 1][j - 1])
if C[i][j - 1] == prev_C:
i, j = i, j - 1
elif C[i - 1][j] == prev_C:
i, j = i - 1, j
else:
i, j = i - 1, j - 1
Answer = Answer[::-1]