Introducción
Hay una plantación definida por un gran tablero cuadrado como este:
Los números dentro de cada cuadrado pequeño representan el valor de su área / efectivo / ...
El agricultor necesita ayuda para encontrar los N cuadrados que se conectan (esto significa que todos los N cuadrados deben tener al menos un borde compartido) para darle el mayor valor.
Por ejemplo:
Si N=1
, entonces la salida debe ser 140
.
Si N=6
, entonces ..
... la salida debe ser 315
.
Desafío
Su programa / función debe tomar los valores de la matriz y el número N como entrada / argumentos y debe generar el valor de la conexión poderosa .
Como se trata de código de golf , ¡la respuesta más corta en bytes gana!
Ejemplos
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
Salida: 315
Entrada:
35 -7
-8 36
2
Salida: 29
Respuestas:
JavaScript (ES6), 190 bytes
Explicación
Toma la matriz como una matriz de matrices.
Comienza desde cada cuadrado y luego usa una función recursiva para probar cada combinación posible. Este es un enfoque de fuerza bruta, pero termina casi instantáneamente para el primer caso de prueba en mi máquina.
Prueba
fuente