Los libros Choose Your Own Adventure son una forma de literatura interactiva donde el lector debe tomar decisiones que afectan el resultado de la historia. En ciertos puntos de la historia, el lector tiene múltiples opciones que se pueden elegir, cada una de las cuales envía al lector a una página diferente del libro.
Por ejemplo, en un entorno de fantasía, uno debería decidir en la página 14 si aventurarse en una cueva misteriosa "saltando" a la página 22, o explorar el bosque cercano saltando a la página 8. Estos "saltos" se pueden expresar como pares de números de página, así:
14 22
14 8
En la mayoría de los casos, la historia tiene muchos finales pero solo unos pocos buenos. El objetivo es navegar por la historia para llegar a un buen final.
Tarea:
Dada una lista de "saltos" para un libro dado, su tarea es determinar una ruta que conduzca a un final específico. Como esto es bastante fácil, el verdadero desafío es hacerlo en la menor cantidad de caracteres posible.
Este es el código de golf .
Entrada de muestra (donde 1 es el comienzo y 100 es el objetivo):
1 10
10 5
10 13
5 12
5 19
13 15
12 20
15 100
Salida de muestra:
1 10 13 15 100
Entrada de muestra:
15 2
1 4
2 12
1 9
3 1
1 15
9 3
12 64
4 10
2 6
80 100
5 10
6 24
12 80
6 150
120 9
150 120
Salida de muestra:
1 15 2 12 80 100
Notas:
- La lista de saltos será ingresada por el usuario, ya sea desde un archivo o stdin. Puede elegir el que sea más conveniente.
- La entrada contendrá 1 salto por línea, con el origen y el destino separados por un solo espacio.
- No se garantiza que las líneas en la entrada estén en ningún orden específico.
- Una ruta exitosa comenzará en la página 1 y finalizará en la página 100.
- Puede suponer que hay al menos 1 camino hacia la meta. No necesita encontrar todos los caminos, ni tampoco encontrar el más corto. Solo encuentra al menos uno.
- El número de página más pequeño será 1. No hay límite para el número de página más grande. (Puede suponer que encajará en el rango de un int.)
- Los lazos pueden existir. Por ejemplo, la lista puede tener saltos de la página 5 a la 10, de la 10 a la 19 y de la 19 a la 5.
- Puede haber callejones sin salida. Es decir, una página de destino podría no tener un lugar al que saltar.
- Por el contrario, puede haber páginas inalcanzables. Es decir, una página de origen podría no ser el destino de ningún salto.
- No se garantiza el uso de todos los números de página entre 1 y 100.
- Su salida debe consistir en una ruta válida de números de página, comenzando con 1 y terminando en 100, separados por espacios.
Recuerde, este es el código de golf, por lo que gana la solución más corta.
EDITAR: se agregó otra muestra para probar.