Нехай A
бути m
від n
прямокутної матриці позитивних цілих чисел, де m
і n
також є позитивними цілими числами.
Нас цікавлять шляхи RoD («Вправо або вниз») від лівої верхньої комірки A
до нижньої правої клітини; на шляху до RoD, кожна наступна комірка шляху є або однією клітиною праворуч, або однією коміркою вниз від попередньої комірки.
З огляду на будь-який такий шлях RoD, ми можемо взяти суму комірок A
у цьому шляху.
Наприклад, розглянемо матрицю 4 на 3:
[ [1, 2, 3, 4],
[5, 1, 6, 7],
[8, 2, 1, 1] ]
Тоді ми можемо розглянути шлях РО:
1 > 2 3 4
v
5 1 6 7
v
8 2 > 1 > 1
який має суму 1+2+1+2+1+1=8
. Варто зазначити, що цей шлях має найменшу суму з усіх можливих шляхів RoD від верхнього лівого до нижнього правого у цій матриці.
Отже, пропоноване завдання полягає в тому, щоб забезпечити найкоротшу функцію / програму на обраній вами мові, яка виводить мінімальну суму, яку може мати шлях RoD від верхнього лівого до правого краю в заданій матриці A
.
Діють звичайні заборонені лазівки. Ваша інформація може бути у будь-якому розумному форматі; ваш вихід повинен бути цілим числом.
Це код-гольф; відповіді набираються за кількістю байтів.
Випробування
[ [5] ] -> 5
[ [5, 2] ] -> 7
[ [5],
[2] ] -> 7
[ [ 9 , 1 , 12, 3 ],
[ 12, 11, 6 , 11],
[ 12, 9 , 2 , 11] ] -> 40
[ [ 6 , 8 , 11, 2 ],
[ 3 , 6 , 7 , 6 ],
[ 6 , 2 , 8 , 12] ] -> 37
[ [ 4 , 5 , 8 , 4 ],
[ 6 , 5 , 9 , 4 ],
[ 2 , 5 , 6 , 8 ] ] -> 31
[ [ 4 , 5 , 15, 18, 30],
[ 26, 26, 3 , 4 , 5 ],
[ 7 , 9 , 29, 25, 14],
[ 16, 1 , 27, 13, 27],
[ 23, 11, 25, 24, 12],
[ 17, 23, 7 , 14, 5 ] ] -> 94
[ [ 10, 15, 7 , 2 , 9 ],
[ 24, 5 , 2 , 1 , 25],
[ 2 , 12, 14, 30, 18],
[ 28, 4 , 12, 22, 14],
[ 15, 21, 21, 11, 4 ],
[ 21, 15, 21, 29, 9 ] ] -> 103