Nonary Game是一款虚构的游戏,使用同名的电子游戏三部曲进行。您的目标是找到尽可能少的代码字节(最多)可以让给定游戏逃脱的玩家人数。
游戏规则
- 有9位玩家,编号从1到9。
- 所有玩家都从同一房间开始。
- 门的数量不限,每个门的编号为1到9。门号可能重复或丢失。
- 门是房间之间的单向连接。每个门只能使用一次。
- 只有3至5名球员的团体才能进入。
- 如果一组人的模数之和为9与门的模数为9相匹配,则该组只能穿过门。
- 任何经过9门的玩家都会逃脱(获胜)。
例子
┌───┬───┬───┐
│ 6 4 9
│ < │ | |
│ 3 5 9
└───┴───┴───┘
<
代表起点。所有玩家都从这里开始。
在这种情况下,每个人都可以逃脱。有多种方法可以实现此目的,其中一种是:
- [1、2、3、4、5]经过6号门((1 + 2 + 3 + 4 + 5)%9 = 6),而[6、7、8、9]通过3号门((6 + 7 + 8 + 9)%9 = 3)。大家在第二个房间见面。
- [1、2、3、7]穿过门4,而[4、5、6、8、9]穿过门5。
- [1、2、3、4、8]穿过9个门之一,[5、6、7、9]穿过另一个门。
┌───┬───┐
│ │ |
│ < 8 9
│ │ |
└───┴───┘
这次,最多4人可以逃脱:
- [1、3、5、8、9]经过8号门。
- [1、3、5、9]经过9号门。
可能还有其他幸存者名单,例如[2、3、4]或[1、4、6、7],但无法让4个人逃脱。
挑战
给定一张地图,输出可以逃脱的最大玩家数量。
- 不用担心,您不需要解析我可怕的图表!输入是带标签的有向图,可以用任何方便的格式表示(边集,邻接矩阵...)。
- 如果您的表示形式需要房间标签,则可以使用任何一致的值集。但是,门必须用1到9的整数表示。
- 输入将始终至少有一个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
4
我知道这是999的游戏遗物,但令我感到
—
烦恼的
在描述和图片示例中可能需要使一些门绕开房间而更加清楚。门还能倒退吗?即有些人可能会从0-> 1->退出,而其他人可能会从0-> 2-> 1->退出?
—
尼克·肯尼迪
@NickKennedy不知道您所说的“旁路”是什么意思。门可以将任何房间连接到任何其他房间。这是有向图。
—
Grimmy19年
如果您认为一旦有人犯错,自发爆炸的威胁会使本系列规则变得更加有趣,请尝试一下游戏。这很棒。
—
散布
@Grimy当然可以,但是图示示例和前5个实际示例的所有门都从一个房间通向右边的下一个房间。
—
尼克·肯尼迪