Choose Your Own Adventureブックは、読者がストーリーの結果に影響を与える決定を行う必要があるインタラクティブな文学の形式です。ストーリーの特定の時点で、読者には選択可能な複数のオプションがあり、それぞれが読者を本の異なるページに送ります。
たとえば、ファンタジーの設定では、14ページで22ページに「ジャンプ」して神秘的な洞窟に飛び込むか、8ページにジャンプして近くの森を探索するかを決定する必要があります。これらの「ジャンプ」は次のようなページ番号のペアとして:
14 22
14 8
ほとんどの場合、物語には多くの結末がありますが、良い結末はわずかです。目標は、ストーリーをナビゲートして良い結末に達することです。
仕事:
特定の本の「ジャンプ」のリストが与えられたら、あなたの仕事は、特定の結末に至るルートを決定することです。これは非常に簡単なので、真の課題はできる限り少ない文字数で行うことです。
これは コードゴルフです。
サンプル入力(1が開始で、100が目標):
1 10
10 5
10 13
5 12
5 19
13 15
12 20
15 100
サンプル出力:
1 10 13 15 100
サンプル入力:
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
サンプル出力:
1 15 2 12 80 100
ノート:
- ジャンプのリストは、ユーザーがファイルまたは標準入力から入力します。最も便利な方を選択できます。
- 入力には行ごとに1つのジャンプが含まれ、出発地と目的地は1つのスペースで区切られます。
- 入力の行は、特定の順序であることが保証されていません。
- 成功したパスはページ1で始まり、ページ100で終わります。
- ゴールへのパスが少なくとも1つあると仮定できます。すべてのパスを見つける必要も、最短パスを見つける必要もありません。少なくとも1つ見つけてください。
- 最小ページ番号は1です。最大ページ番号に制限はありません。(intの範囲に収まると想定できます。)
- ループが存在する場合があります。たとえば、リストにはページ5から10、10から19、および19から5へのジャンプがあります。
- 行き止まりがあるかもしれません。つまり、リンク先ページにジャンプする場所がない場合があります。
- 逆に、到達不能なページがあるかもしれません。つまり、元のページはジャンプの宛先ではない可能性があります。
- 1〜100のすべてのページ番号が使用されることが保証されているわけではありません。
- 出力は、スペースで区切られた1から100までのページ番号の有効なルートで構成する必要があります。
これはコードゴルフであるため、最短の解決策が勝つことを忘れないでください!
編集:テスト用の別のサンプルを追加しました。