Introducción
Estás sentado en una sala de juntas al final de una larga mesa. Miras a tu alrededor y ves a Tim Cook, la Junta Directiva de Apple, el fantasma de Steve Jobs y Jack Donaghy. Apple ha convocado esta reunión porque se han dado cuenta de lo genial que es la pantalla de bloqueo de Android y quieren ponerla 1-UP. Todos en la sala te miran mientras Ghost Steve llora: "¡Ayúdame, CodeGolf Man! ¡Eres mi única esperanza!"
El problema
La pantalla de bloqueo de Android es una cuadrícula de puntos de 3 x 3 que se puede conectar deslizando un dedo de un punto al siguiente, creando una ruta. Una contraseña se considera cualquier ruta posible que incluya cualquier número de puntos y excluya cualquier número de puntos. (En un teléfono real, la ruta debe tener al menos 4 puntos de largo. Para este desafío, ignore esa restricción). Apple planea reemplazar la cuadrícula 3 x 3 con una cuadrícula M x N, que es (M * N) / 9 veces mejor!
Reglas:
Por ejemplo, en una cuadrícula de 3x3 con puntos numerados del 1 al 9:
1 2 3
4 5 6
7 8 9
Algunas rutas válidas son:
1
3
7,2,3
1,5,9,2
1,8,6,5,4
4,2,3,5,6,7,8,9
5,9,6,4
Y algunas rutas inválidas son:
1,3
1,9,5
7,5,4,7
4,6
Su entrada será de tres números:
(M,N,d)
Donde la cuadrícula es M x N, y d es la longitud de la ruta
1 <= M <= 16
1 <= N <= 16
1 <= d <= M * N
Su programa o función recibirá la entrada como una cadena separada por comas, y debe devolver el número de posibles contraseñas de esa longitud. Por ejemplo:
Input: 2,2,1
Output: 4
Input: 2,2,2
Output: 12
Input: 7,4,1
Output: 28
Se aplican las reglas estándar del código de golf, ¡el código más corto gana!
//If I've made a mistake or the rules are unclear, please correct me!
256!
permutaciones de los puntos en la cuadrícula de 16 x 16 representa un patrón de desbloqueo válido. En la práctica, dicho programa nunca terminaría.