Kendi Maceralarını Seç kitaplar, okuyucunun hikayenin sonucunu etkileyen kararlar alması gereken etkileşimli bir edebiyat türüdür. Hikayenin belirli noktalarında okuyucunun seçilebilecek birden fazla seçeneği vardır ve her biri okuyucuyu kitaptaki farklı bir sayfaya gönderir.
Örneğin, bir fantezi ortamında, sayfa 14'te "atlayarak" gizemli bir mağaraya girip girmeyeceğine veya sayfa 8'e atlayarak yakındaki ormanı araştırmaya karar vermek gerekebilir. Bu "sıçramalar" ifade edilebilir sayfa numaraları çifti olarak, şöyle:
14 22
14 8
Çoğu durumda, hikayenin birçok sonu vardır, ancak sadece birkaç iyi olanı vardır. Amaç, iyi bir sona ulaşmak için hikayede gezinmektir.
Görev:
Belirli bir kitap için "sıçramalar" listesi verildiğinde, göreviniz belirli bir sona yol açacak bir rota belirlemektir. Bu oldukça kolay olduğundan, asıl zorluk bunu mümkün olduğunca az karakterle yapmaktır.
Bu kod golf .
Örnek giriş (burada 1 başlangıç ve 100 hedeftir):
1 10
10 5
10 13
5 12
5 19
13 15
12 20
15 100
Örnek çıktı:
1 10 13 15 100
Örnek giriş:
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
Örnek çıktı:
1 15 2 12 80 100
Notlar:
- Atlamaların listesi kullanıcı tarafından bir dosyadan veya stdin'den girilir. Hangisinin en uygun olduğunu seçebilirsiniz.
- Girdi, başlangıç noktası ve hedef tek bir boşlukla ayrılmış olarak satır başına 1 atlama içerir.
- Girişteki satırların belirli bir sırada olacağı garanti edilmez.
- Başarılı bir yol 1. sayfada başlar ve 100. sayfada sona erer.
- Hedefe giden en az 1 yol olduğunu varsayabilirsiniz. Tüm yolları bulmanıza veya en kısa olanı bulmanıza gerek yoktur. Sadece en az birini bul.
- En küçük sayfa numarası 1 olacaktır. En büyük sayfa numarasının sınırı yoktur. (Bir int aralığına uyacağını varsayabilirsiniz.)
- Döngüler olabilir. Örneğin, listede sayfa 5 ila 10, 10 ila 19 ve 19 ila 5 arasında atlamalar olabilir.
- Çıkmazlar olabilir. Diğer bir deyişle, bir hedef sayfanın atlamak için hiçbir yeri olmayabilir.
- Tersine, erişilemeyen sayfalar olabilir. Yani, başlangıç sayfası herhangi bir atlamanın hedefi olmayabilir.
- 1 ile 100 arasındaki tüm sayfa numaralarının kullanılması garanti edilmez.
- Çıktınız, 1 ile başlayan ve 100 ile biten, boşluklarla ayrılmış geçerli bir sayfa numarası yolundan oluşmalıdır.
Unutmayın, bu kod golf, bu yüzden en kısa çözüm kazanır!
EDIT: Test için başka bir örnek eklendi.