Introdução
Há uma plantação definida por um grande painel quadrado como este:
Os números dentro de cada quadrado pequeno representam o valor / dinheiro / ...
O agricultor precisa de ajuda para encontrar o N quadrados que estão conectados (significa que todos os N quadrados devem ter pelo menos uma borda compartilhada) dar a ele o maior valor.
Por exemplo:
E se N=1
, então a saída deve ser 140
.
Se N=6
então ..
..a saída deve ser 315
.
Desafio
Seu programa / função deve usar os valores da matriz e o número N como entrada / argumentos e deve gerar a conexão poderosa valor .
Uma vez que este é o código-golfe , a resposta mais curta em bytes vence!
Exemplos
Entrada:
10 -7 11 7 3 31
33 31 2 5 121 15
22 -8 12 10 -19 43
12 -4 54 77 -7 -21
2 8 6 -70 109 1
140 3 -98 6 13 20
6
Resultado: 315
Entrada:
35 -7
-8 36
2
Resultado: 29
Respostas:
JavaScript (ES6), 190 bytes
Explicação
Toma a matriz como uma matriz de matrizes.
Começa em cada quadrado e usa uma função recursiva para testar todas as combinações possíveis. Essa é uma abordagem de força bruta, mas termina quase instantaneamente no primeiro caso de teste na minha máquina.
Teste
fonte