Frank 住在伦敦,他非常喜欢游戏和数学。最近,他在手机上玩一款游戏。游戏很简单:给定一个颜色标记序列,玩家每一步必须合并一对相邻的标记,以获得某种特定颜色的新标记。这个过程不断重复,直到整个序列只剩下一个最终标记。问题在于并非每对颜色都能合并。有一组规则描述了允许的组合。例如,给定以下规则:
blue + yellow $\to$ green yellow + red $\to$ orange blue + orange $\to$ brown
对于序列 (blue, yellow, red),游戏可以在两步后结束并得到一个 brown 标记:(blue, yellow, red) $\to$ (blue, orange) $\to$ (brown)。
Frank 现在正在瓦伦西亚参加一场著名的编程竞赛,他正在等电车去大学。与此同时,他正在玩这个游戏来打发时间,但阳光太刺眼,他无法看清手机屏幕。他对每个标记可能的颜色有一定的把握,他想知道根据他对输入序列的估计,最可能的博弈过程会产生什么结果颜色。给定 Frank 对两种颜色 A 和 B 的估计,以及组合 A + B $\to$ C,所得颜色 C 的确定性计算公式为 $\text{cer(C)} = \text{cer(A)} \cdot \text{cer(B)}$。
输入格式
第一行包含 $R$ ($0 < R \le 100$),表示描述允许颜色组合的规则数量。接下来的 $R$ 行,每行包含三个字符串 $s_1, s_2, s_3$,表示组合 $s_1 + s_2 \to s_3$。下一行显示测试用例的数量 $T$。对于每个测试用例,一个整数 $C$ 表示输入标记序列的长度 ($0 < C \le 500$)。接下来的 $C$ 行描述一个标记,包含一系列对 $(k, \text{cer}(k))$,提供颜色 $k$ 及其对应的确定性 ($0 < \text{cer}(k) \le 1.0$)。列表以单词 END 结尾。对于某个特定标记,所有颜色的确定性之和始终为 $1.0$。测试用例中的每种颜色都在描述游戏的规则中出现过。
输出格式
对于每个测试用例,打印最可能的博弈过程所产生的最终颜色。如果没有可能的组合来完成游戏,则打印 GAMEOVER。
样例
样例输入 1
7 Blue Yellow Green Yellow Red Orange Green Red Yellow White Red Pink Pink Black Red Orange Red Red Yellow Orange Yellow 3 2 Red 0.7 Orange 0.3 END Yellow 1.0 END 4 Blue 0.6 Green 0.4 END Red 0.2 Orange 0.6 Yellow 0.2 END White 0.9 Yellow 0.1 END Red 0.5 Black 0.5 END 2 Blue 1.0 END Orange 1.0 END
样例输出 1
Orange Yellow GAMEOVER
说明
第一个样例
在第一个样例中只有两个标记。Frank 确定第二个标记是 Yellow,但第一个标记可能是 Red 或 Orange。游戏有两种可能的解:
- (Red, Yellow) $\to$ (Orange) : $\text{cer(Orange)} = 0.7$
- (Orange, Yellow) $\to$ (Yellow) : $\text{cer(Yellow)} = 0.3$
因此,根据 Frank 的估计,最可能的博弈过程是第 1 种,最终颜色为 Orange。
第二个样例
在第二个样例中有多个标记和估计。两种可能的解为:
- (Blue, Yellow, Yellow, Red) $\to$ (Blue, Yellow, Orange) $\to$ (Blue, Yellow) $\to$ (Green) $\text{cer(Green)} = 0.006$
- (Green, Red, White, Black) $\to$ (Green, Pink, Black) $\to$ (Green, Red) $\to$ (Yellow) $\text{cer(Yellow)} = 0.036$
因此,根据 Frank 的估计,最可能的博弈过程是第 2 种,最终颜色为 Yellow。
第三个样例
在这个最终样例中,Frank 确定有两个标记 Blue 和 Orange。在定义的游戏中没有规则允许组合这些颜色,因此,该标记序列没有解。