Un helicóptero que comienza en la esquina superior izquierda está descendiendo (en un espacio 2D, para el propósito de esta pregunta) hacia el suelo. Tiene un modo de piloto automático y un modo manual.
El modo de piloto automático se comporta de la siguiente manera:
- Si el espacio directamente debajo es libre, desciende a él.
- De lo contrario, mueva un paso hacia la izquierda o hacia la derecha, totalmente al azar. (Puede mover varios pasos de esta manera).
Y sigue repitiendo estos dos pasos hasta que toca el suelo. El modo manual es más inteligente y encontrará el camino óptimo hacia el suelo, incluso si esto requiere moverse hacia arriba o algunas maniobras hábiles.
Tu trabajo es determinar si
- El piloto automático pasará en el escenario dado,
- El piloto automático puede fallar en el escenario dado,
- El piloto automático fallará, pero el modo manual pasará, o
- Ambos modos fallarán (no hay una ruta válida al suelo).
Entrada
- Escenario dado como una matriz no vacía 1d o 2d, usando dos caracteres diferentes para representar espacios libres y bloqueados. Puntuación opcional.
- Opcional: dimensiones de la matriz
Salida
Uno de los cuatro caracteres predefinidos que indica cuál de los casos ha ocurrido.
Data de muestra
Usando 0 (vacío) y 1 (bloqueado) en la entrada, 1 2 3 4 en la salida (como se enumera arriba)
0 0 0 0
0 1 0 0
0 0 0 1
1 1 0 0
Salida: 1
0 0 1 0
1 0 0 1
0 0 0 0
0 1 1 0
0 0 0 1
Salida: 2
(El helicóptero encontrará el 1 en la cuarta fila, y es posible que se atrape al final de la fila 5, si está en modo piloto automático)
0 0 0 1 0
0 1 1 0 0
0 1 0 0 0
0 0 0 1 0
1 1 1 1 0
Salida: 3
(Esto requiere moverse hacia arriba, por lo que falla el piloto automático)
1 0 0
0 0 0
Salida: 4
0 0 0 0 1
1 1 1 0 0
1 0 0 1 0
0 1 0 0 0
0 0 1 1 1
Salida: 4