Problema
Ver original (inglés)Comienza en la esquina superior izquierda de una cuadrícula de filas por columnas celdas. Muévete solo a lo largo de los bordes de las celdas, un borde a la derecha o un borde hacia abajo por vez, hasta llegar a la esquina inferior derecha. Cuenta las secuencias de movimientos distintas. La cuadrícula no tiene obstáculos.
Una cuadrícula de 2 filas y 3 columnas de celdas requiere exactamente 2 movimientos hacia abajo y 3 hacia la derecha.
Implementa lattice_paths(rows, columns).
Entrada
rows: El número de filas de celdas, no de vértices.
columns: El número de columnas de celdas, no de vértices.
Salida
Devuelve el número de rutas de esquina a esquina.
Restricciones
0 ≤ rows, columns ≤ 30 y rows + columns ≤ 60. Cero en una dimensión da una ruta recta. Una cuadrícula de 0 × 0 tiene una única ruta vacía. Los conteos caben en un entero con signo de 64 bits.
Ejemplos
Entrada:
rows = 2
columns = 3
Salida esperada:
expected = 10
Entrada:
long long rows = 2;
long long columns = 3;
Salida esperada:
long long expected = 10;
Entrada:
long rows = 2;
long columns = 3;
Salida esperada:
long expected = 10;
Explicación
Cada ruta contiene cinco movimientos. Elegir cuáles dos son hacia abajo da diez rutas distintas.
Entrada:
rows = 0
columns = 4
Salida esperada:
expected = 1
Entrada:
long long rows = 0;
long long columns = 4;
Salida esperada:
long long expected = 1;
Entrada:
long rows = 0;
long columns = 4;
Salida esperada:
long expected = 1;
Explicación
Solo existe la ruta recta de cuatro movimientos hacia la derecha.
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.