Учитывая квадрат положительных натуральных чисел, напишите программу, найдите горизонтальный и вертикальный путь с суммой чисел вдоль них, являющейся максимальной. Горизонтальный путь проходит от первого столбца до последнего и должен увеличить свою позицию столбца по одному в каждом шаге. Вертикальный путь проходит от первой строки до последнего и должен увеличить свою позицию строки по одному в каждом шаге. Кроме того, положение строки в горизонтальной траектории может оставаться неизменным или изменяться на единицу в любом направлении, аналогично для вертикальных траекторий.
Чтобы проиллюстрировать это, допустимым может быть следующее:

Следующий путь будет недопустимым, поскольку он идет назад (и в некоторых местах остается в той же строке):

Следующий путь будет в равной степени недействительным, так как он меняет положение строки более чем на один шаг:

Примечание. Решение должно работать в течение приемлемого периода времени.
вход
n строк ввода с n разделенными пробелом положительными целыми числами каждая дана на стандартном вводе. 2 ≤ n ≤ 40. Каждая строка заканчивается разрывом строки. Числа достаточно малы, чтобы максимальная сумма помещалась в 32-разрядное целое число со знаком.
Выход
Максимальные суммы горизонтальных и вертикальных путей (в указанном порядке) разделены одним пробелом.
Пример ввода 1
1 2
1 2
Пример вывода 1
3 4
Пример ввода 2
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 1 4 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 4 1 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 4 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 5 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Пример вывода 2
37 35
Пример ввода 3
683 671 420 311 800 936
815 816 123 142 19 831
715 588 622 491 95 166
885 126 262 900 393 898
701 618 956 865 199 537
226 116 313 822 661 214
Пример вывода 3
4650 4799
Для вашего удобства мы подготовили несколько тестовых примеров в bash (благодаря Ventero ) и PowerShell, через которые вы можете запустить свою программу. Invocation:, <test> <command line>так что-то вроде ./test python paths.pyили ./test.ps1 paths.exe. Веселиться :-)
bashтестовый скрипт! Я хотел бы, чтобы весь код гольф пришел с таким.