Nonary Gameは、同じ名前のビデオゲーム3部作で行われる架空のゲームです。あなたの目標は、可能な限り数バイトのコードで、特定のゲームから何人のプレイヤーが脱出できるかを見つけることです。
ゲームのルール
- 1から9までの9人のプレイヤーがいます。
- すべてのプレイヤーは同じ部屋で始まります。
- 任意の数のドアがあり、各ドアには1〜9の番号が付いています。ドア番号が重複または欠落している可能性があります。
- ドアは部屋間の片道接続です。各ドアは一度しか使用できません。
- 3〜5人のプレイヤーのグループのみがドアを通過できます。
- グループは、9を法とする数値の合計が9を法とするドアの数と一致する場合にのみドアを通過できます。
- 9ドアを通過したプレイヤーはすべて逃げます(勝ちます)。
例
┌───┬───┬───┐
│ 6 4 9
│ < │ | |
│ 3 5 9
└───┴───┴───┘
<開始点を表します。すべてのプレイヤーがそこから始まります。
この設定では、誰もが脱出できます。これを実現するにはさまざまな方法がありますが、そのうちの1つは
- [1、2、3、4、5]はドア6((1 + 2 + 3 + 4 + 5)%9 = 6)を通過し、[6、7、8、9]はドア3を通過します((6 + 7 + 8 + 9)%9 = 3)。全員が2番目の部屋で会います。
- [1、2、3、7]はドア4を通り、[4、5、6、8、9]はドア5を通ります。
- [1、2、3、4、8]は9つのドアの1つを通り、[5、6、7、9]はもう1つのドアを通ります。
┌───┬───┐
│ │ |
│ < 8 9
│ │ |
└───┴───┘
今回は、最大4人が脱出できます。
- [1、3、5、8、9]はドア8を通過します。
- [1、3、5、9]はドア9を通過します。
[2、3、4]や[1、4、6、7]などの生存者の他のリストも可能ですが、4人以上が逃げる方法はありません。
チャレンジ
マップが与えられたら、脱出できるプレイヤーの最大数を出力します。
- 心配しないでください、あなたは私のひどい図を解析する必要はありません!入力はラベル付きの有向グラフであり、任意の便利な形式(エッジセット、隣接行列など)で表すことができます。
- リプレゼンテーションで部屋のラベルが必要な場合は、一貫した値のセットを使用できます。ただし、ドアは1〜9の整数で表す必要があります。
- 入力には常に少なくとも1つの9ドアがあります。9つのドアはすべて出口に通じていますが、他のドアは通っていません。
- あなたの提出物は、機能または完全なプログラムになります。
- 標準的な抜け穴は禁止されています。
テストケース
入力は、[部屋から部屋へのドア番号]トリプレットのリストとして表示され、0が開始部屋、-1が出口です。別の形式を使用する場合は、適切に変換する必要があります。
Input Output
[[6, 0, 1], [3, 0, 1], [4, 1, 2], [5, 1, 2], [9, 2, -1], [9, 2, -1]] 9
[[8, 0, 1], [9, 1, -1]] 4
[[9, 0, -1]] 5
[[2, 0, 1], [1, 1, 2], [9, 2, -1]] 0
[[2, 0, 1], [3, 1, 2], [9, 2, -1]] 3
[[1, 0, 1], [9, 1, -1], [1, 0, 2], [9, 2, -1]] 4
[[2, 0, 1], [3, 0, 1], [5, 1, 2], [4, 0, 2], [9, 2, -1], [9, 2, -1]] 8
[[3, 0, 1], [4, 0, 1], [5, 0, 1], [9, 1, -1], [7, 1, 2], [9, 2, -1]] 7
[[1, 0, 1], [2, 0, 1], [4, 0, 1], [9, 1, -1], [8, 1, 2], [9, 2, -1]] 6
[[6, 0, 1], [7, 0, 1], [9, 1, -1], [9, 1, -1]] 7