Scegli i tuoi libri di avventura sono una forma di letteratura interattiva in cui il lettore deve prendere decisioni che influenzano il risultato della storia. In alcuni punti della storia, il lettore ha più opzioni che possono essere scelte, ognuna delle quali invia il lettore a una pagina diversa del libro.
Ad esempio, in un ambiente fantasy, potrebbe essere necessario decidere a pagina 14 se avventurarsi in una caverna misteriosa "saltando" a pagina 22 o esplorare la foresta vicina saltando a pagina 8. Questi "salti" possono essere espressi come coppie di numeri di pagina, in questo modo:
14 22
14 8
Nella maggior parte dei casi, ci sono molti finali della storia, ma solo alcuni buoni. L'obiettivo è quello di navigare nella storia per raggiungere un buon finale.
Compito:
Dato un elenco di "salti" per un determinato libro, il tuo compito è determinare un percorso che porterà a un finale specifico. Poiché questo è abbastanza facile, la vera sfida è farlo nel minor numero di personaggi possibile.
Questo è il codice golf .
Input di esempio (dove 1 è l'inizio e 100 è l'obiettivo):
1 10
10 5
10 13
5 12
5 19
13 15
12 20
15 100
Uscita campione:
1 10 13 15 100
Input di esempio:
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
Uscita campione:
1 15 2 12 80 100
Appunti:
- L'elenco dei salti verrà inserito dall'utente, da un file o da uno stdin. Puoi scegliere quello che è più conveniente.
- L'ingresso conterrà 1 salto per riga, con l'origine e la destinazione separate da un singolo spazio.
- Le linee nell'input non sono garantite in un ordine specifico.
- Un percorso riuscito inizierà a pagina 1 e terminerà a pagina 100.
- Puoi presumere che ci sia almeno 1 percorso verso l'obiettivo. Non è necessario trovare tutti i percorsi, né è necessario trovare il più breve. Basta trovarne almeno uno.
- Il numero di pagina più piccolo sarà 1. Non c'è limite al numero di pagina più grande. (Puoi presumere che si adatterà nell'intervallo di un int.)
- Possono esistere dei loop. Ad esempio, l'elenco può avere salti da pagina 5 a 10, da 10 a 19 e da 19 a 5.
- Potrebbero esserci dei vicoli ciechi. Cioè, una pagina di destinazione potrebbe non avere un posto in cui saltare.
- Al contrario, potrebbero esserci pagine irraggiungibili. Cioè, una pagina di origine potrebbe non essere la destinazione di alcun salto.
- Non tutti i numeri di pagina compresi tra 1 e 100 sono garantiti per l'uso.
- L'output deve essere costituito da un percorso valido di numeri di pagina, che iniziano con 1 e terminano con 100, separati da spazi.
Ricorda, questo è il golf del codice, quindi vince la soluzione più breve!
EDIT: aggiunto un altro campione per il test.