Dato un quadrato di numeri naturali positivi, scrivere un programma trova un percorso orizzontale e uno verticale con la somma dei numeri lungo di essi massima. Un percorso orizzontale va dalla prima colonna all'ultima e deve aumentare la posizione della colonna di una in ogni passaggio. Un percorso verticale va dalla prima all'ultima riga e deve aumentare la posizione della riga di una in ogni passaggio. Inoltre, la posizione della fila in un percorso orizzontale può rimanere la stessa o cambiare di una in entrambe le direzioni, allo stesso modo per i percorsi verticali.
Per illustrare, potrebbe essere un percorso valido quanto segue:

Il seguente percorso non sarebbe valido, poiché fa un passo indietro (e rimane sulla stessa riga in alcuni punti):

Il seguente percorso sarebbe ugualmente non valido, poiché modifica la posizione della riga di più di una in un singolo passaggio:

Nota: la soluzione dovrebbe essere eseguita in un periodo di tempo accettabile.
Ingresso
N righe di input con n numeri interi positivi separati da spazi sono fornite ciascuna su input standard. 2 ≤ n ≤ 40. Ogni linea è terminata da un'interruzione di linea. I numeri sono abbastanza piccoli da contenere la somma massima in un intero con segno a 32 bit.
Produzione
Le somme massime dei percorsi orizzontale e verticale (in quell'ordine) separate da un singolo spazio.
Esempio di input 1
1 2
1 2
Uscita campione 1
3 4
Esempio di input 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
Uscita campione 2
37 35
Esempio di input 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
Uscita campione 3
4650 4799
Per tua comodità, abbiamo preparato alcuni casi di test in bash (grazie a Ventero ) e PowerShell su cui puoi eseguire il tuo programma. L'invocazione è:, <test> <command line>quindi qualcosa di simile ./test python paths.pyo ./test.ps1 paths.exe. Divertiti :-)
bashscript di prova! Vorrei che tutto il codice golf venisse con questo.