Los juegos de tácticas por turnos como Advance Wars, Wargroove y Fire Emblem están formados por una cuadrícula cuadrada de terreno variable con unidades de diferentes clases de movimiento que requieren diferentes costos para cada tipo de terreno. Investigaremos un subconjunto de ese problema.
Desafío
Su tarea es determinar si una ubicación es accesible desde otra dada una cuadrícula de costos del terreno y una velocidad de movimiento.
Las unidades solo pueden moverse ortogonalmente donde el costo de moverse a un cuadrado es el valor de la celda correspondiente en la cuadrícula (el movimiento es libre). Por ejemplo, pasar de una celda con un valor de 3 a una celda con un valor de 1 cuesta 1 movimiento, pero ir a la inversa requiere 3. Algunas casillas pueden ser inaccesibles.
Ejemplo
1 [1] 1 1 1
1 2 2 3 1
2 3 3 3 4
1 3 <1> 3 4
Moverse de [1]
a <1>
requiere un mínimo de 7 puntos de movimiento moviéndose hacia la derecha un cuadrado y luego hacia abajo tres. Por lo tanto, si se le da 6 o menos como la velocidad de movimiento, debe generar una respuesta falsa.
Ejemplos de casos de prueba
Estos utilizarán coordenadas de índice cero (fila, columna) de origen superior izquierdo en lugar de celdas entre corchetes para el inicio y el final para facilitar el análisis. Las celdas inalcanzables se representarán conX
Caso 1a
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (2, 3) to (0, 1)
Output: True
Caso 1b
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 4
From (2, 3) to (0, 1)
Output: False
Caso 1c
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (0, 1) to (2, 3)
Output: False
Caso 2a
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (3, 4) to (2, 1)
Output: True
Caso 2b
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 4
From (3, 4) to (2, 1)
Output: False
Caso 2c
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (1, 8) to (2, 7)
Output: True
Caso 3a
2 1 1 2
2 3 3 1
Speed: 3
From (0, 0) to (1, 1)
Output: False
Caso 3b
2 1 1 2
2 3 3 1
Speed: 3
From (1, 1) to (0, 0)
Output: True
Reglas, supuestos y notas
- Las lagunas estándar están prohibidas, las E / S pueden estar en cualquier formato conveniente
- Puede suponer que las coordenadas están todas en la cuadrícula
- La velocidad de movimiento nunca será superior a 100
- Las celdas inaccesibles pueden representarse con números muy grandes (por ejemplo, 420, 9001, 1 millón) o con 0 o nulo, lo que sea más conveniente para usted.
- Todas las entradas consistirán en enteros positivos (a menos que se use nulo o 0 para representar celdas inalcanzables)