Учитывая матрицу, состоящую из натуральных чисел, выведите путь с наименьшей суммой при обходе от верхнего левого элемента к нижнему правому. Вы можете двигаться вертикально, горизонтально и по диагонали. Обратите внимание, что можно перемещать вверх / вниз, вправо / влево и по диагонали во все стороны.
Пример:
1* 9 7 3 10 2 2
10 4* 1* 1* 1* 7 8
3 6 3 8 9 5* 7
8 10 2 5 2 1* 4
5 1 1 3 6 7 9*
Путь, дающий наименьшую сумму, отмечен звездочками и приводит к следующей сумме: 1 + 4 + 1 + 1 + 1 + 5 + 1 + 9 = 23 .
Тестовые случаи:
1 1 1
1 1 1
Output: 3
7 9 6 6 4
6 5 9 1 6
10 7 10 4 3
4 2 2 3 7
9 2 7 9 4
Output: 28
2 42 6 4 1
3 33 1 1 1
4 21 7 59 1
1 7 6 49 1
1 9 2 39 1
Output: 27 (2+3+4+7+7+1+1+1+1)
5 6 7 4 4
12 12 25 25 25
9 4 25 9 5
7 4 25 1 12
4 4 4 4 4
Output: 34 (5+12+4+4+4+1+4)
1 1 1 1
9 9 9 1
1 9 9 9
1 9 9 9
1 1 1 1
Output: 15
2 55 5 3 1 1 4 1
2 56 1 99 99 99 99 5
3 57 5 2 2 2 99 1
3 58 4 2 8 1 99 2
4 65 66 67 68 3 99 3
2 5 4 3 3 4 99 5
75 76 77 78 79 80 81 2
5 4 5 1 1 3 3 2
Output: 67 (2+2+3+3+4+5+4+3+3+3+1+2+2+1+3+1+1+4+5+1+2+3+5+2+2)
Это код-гольф, поэтому выигрывает самый короткий код на каждом языке.