Dado um quadrado de números naturais positivos, escreva um programa que encontre um caminho horizontal e vertical com a soma dos números ao longo deles sendo máxima. Um caminho horizontal vai da primeira coluna para a última e precisa aumentar a posição da coluna em um em cada etapa. Um caminho vertical vai da primeira linha à última e precisa aumentar sua posição da linha em um em cada etapa. Além disso, a posição da linha em um caminho horizontal pode permanecer a mesma ou mudar uma em qualquer direção, da mesma forma para os caminhos verticais.
Para ilustrar, o seguinte pode ser um caminho válido:
O caminho a seguir seria inválido, pois retrocede (e permanece na mesma linha em alguns lugares):
O caminho a seguir seria igualmente inválido, pois altera a posição da linha em mais de um em uma única etapa:
Nota: A solução deve ser executada em um período de tempo aceitável.
Entrada
n linhas de entrada com n inteiros positivos separados por espaço são dadas na entrada padrão. 2 ≤ n ≤ 40. Cada linha é terminada por uma quebra de linha. Os números são pequenos o suficiente para que a soma máxima caiba em um número inteiro assinado de 32 bits.
Resultado
As somas máximas dos caminhos horizontais e verticais (nessa ordem) separadas por um único espaço.
Entrada de amostra 1
1 2
1 2
Saída de amostra 1
3 4
Entrada de amostra 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
Saída de amostra 2
37 35
Entrada de amostra 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
Saída de amostra 3
4650 4799
Para sua conveniência, preparamos alguns casos de teste no bash (graças ao Ventero ) e no PowerShell, nos quais você pode executar seu programa. A invocação é:, <test> <command line>
então algo como ./test python paths.py
ou ./test.ps1 paths.exe
. Diverta-se :-)
bash
script de teste! Eu gostaria que todo o código de golfe viesse com isso.