Étant donné un carré de nombres positifs, écrire un programme trouver un chemin horizontal et vertical avec la somme des nombres le long d'eux étant maximale. Un chemin horizontal va de la première colonne à la dernière et doit augmenter sa position de colonne d'une unité à chaque étape. Un chemin vertical va de la première ligne à la dernière et doit augmenter sa position d'une ligne à chaque étape. De plus, la position des rangées dans un chemin horizontal peut rester la même ou changer d'une unité dans les deux sens, de même pour les chemins verticaux.
Pour illustrer, ce qui suit pourrait être un chemin valide:

Le chemin suivant ne serait pas valide, car il recule (et reste sur la même ligne à certains endroits):

Le chemin suivant serait également invalide, car il modifie la position de la ligne de plusieurs en une seule étape:

Remarque: La solution doit s'exécuter dans un délai acceptable.
Contribution
n lignes d'entrée avec n entiers positifs séparés par des espaces chacune sont données sur l'entrée standard. 2 ≤ n ≤ 40. Chaque ligne se termine par un saut de ligne. Les nombres sont suffisamment petits pour que la somme maximale tienne dans un entier signé 32 bits.
Production
Somme maximale des trajets horizontal et vertical (dans cet ordre) séparés par un seul espace.
Exemple d'entrée 1
1 2
1 2
Exemple de sortie 1
3 4
Exemple d'entrée 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
Exemple de sortie 2
37 35
Exemple d'entrée 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
Exemple de sortie 3
4650 4799
Pour votre commodité, nous avons préparé quelques cas de test en bash (grâce à Ventero ) et PowerShell à travers lesquels vous pouvez exécuter votre programme. L'invocation est:, <test> <command line>donc quelque chose comme ./test python paths.pyou ./test.ps1 paths.exe. S'amuser :-)
bashscript de test! Je souhaite que tout le golf de code soit livré avec un tel.