Maryam 和 Peiling 最近在练习一个新的数字戏法,她们需要你的帮助来完成它。戏法过程如下:Maryam 首先挑选 $N$ 个独立的随机整数,每个数都在 $2$ 到 $M$ 之间(包含 $2$ 和 $M$),每个数出现的概率相等,并将它们写在 $N$ 张卡片上,每张卡片写一个数。注意,有些数字可能相同。然后,她重复以下步骤 $K$ 次:取一个随机的卡片子集(每张卡片被选中的概率为 $0.5$),并写下这些卡片上数字的乘积。完成所有步骤后,她将 $K$ 个乘积展示给 Peiling,Peiling 的目标是在已知 $N$、$M$ 和这些乘积的情况下,猜出最初的 $N$ 个数字。
一个 $N=3$、$M=4$、$K=4$ 的游戏示例如下:首先,Maryam 挑选了 $3$ 个 $2$ 到 $4$ 之间的随机整数——假设她随机选择了 $A_1=3$、$A_2=3$ 和 $A_3=4$。然后,她计算了这三个数字的随机子集的四个乘积。例如,假设这些乘积为 $A_1 \times A_2=9$、$A_3=4$、$A_1 \times A_2 \times A_3=36$ 以及 $1=1$(最后一个乘积中没有数字,因此等于 $1$)。Peiling 从她那里收到了数字 $9, 4, 36, 1$,并且被告知 $N=3$,$M=4$。在这种情况下,仅看到数字 $36$ 就足以找出最初的数字,因为将其表示为最多 $3$ 个数字(每个数字最大为 $4$)的乘积的唯一方法是 $3 \times 3 \times 4$。所以 Peiling 说最初的数字是 $3, 3$ 和 $4$,观众对此印象深刻。
在其他一些情况下,猜测原始数字并不那么简单。例如,所有乘积都等于 $1$ 的情况是有可能发生的。在这种情况下,无法得知关于隐藏数字的任何信息,因此 Peiling 不能保证总是正确。然而,Peiling 知道 Maryam 完全按照上述过程操作:她首先选择 $N$ 个独立的均匀分布在 $2$ 到 $M$ 之间的整数,然后选择 $K$ 个独立的随机子集,以 $0.5$ 的概率独立地将每个数字放入每个子集中。请帮助 Peiling 利用这些知识做出更好的猜测!
实现细节
这个问题对于 Code Jam 来说有点不同寻常。你将获得 $R$ 个独立的集合,每个集合包含 $K$ 个数字,你需要为每个集合打印一个答案——这部分与往常一样。但是,你不需要全部答对!如果你的答案中至少有 $X$ 个集合是正确的,你的解法将被视为正确,其中 $X$ 的值在下方的“数据范围”中给出。不过,即使对于你答案不正确的集合,你也必须遵循输出格式。在任何集合中,唯一可以出错但仍允许你被判定为正确的地方是你输出的数字;但对于每个案例,仍然必须准确打印 $N$ 个数字,且每个数字必须在 $2$ 到 $M$ 之间。
这个问题涉及随机性,因此即使是最好的解法也可能无法对某个输入做出 $X$ 个正确的猜测(还记得所有乘积都等于 $1$ 的情况吗?)。因此,这个问题没有 Large 输入,而是有两个 Small 输入。这意味着如果你认为自己运气不好,可以重试。你只有在解决了第一个 Small 输入后,才能尝试解决第二个 Small 输入。否则,两个 Small 输入的工作方式与任何其他问题的 Small 输入相同:你可以多次尝试,如果你之后解决了该输入,会有 $4$ 分钟的错误提交惩罚,即使你出错的唯一原因是运气。
祝你好运!
输入格式
输入的第一行给出测试用例的数量 $T$,始终等于 $1$。第二行包含四个空格分隔的整数 $R$、$N$、$M$ 和 $K$。接下来的 $R$ 行描述了 $K$ 个乘积的集合。每一行包含 $K$ 个空格分隔的整数——Maryam 传给 Peiling 的乘积。保证输入中的所有集合都是根据题目描述的过程独立随机生成的。
输出格式
在第一行,输出 "Case #1:"。在接下来的 $R$ 行中,每行输出 $N$ 个数字——你对相应乘积集合中 Maryam 隐藏数字的猜测。你可以以任何顺序打印每个集合的数字,但必须恰好有 $N$ 个数字,每个数字都在 $2$ 到 $M$ 之间(包含 $2$ 和 $M$,注意 $M < 10$,所以没有数字会超过一位)。数字之间不要加空格。
数据范围
时间限制:20 秒。 内存限制:1GB。
第一个 Small 数据集(测试集 1 - 可见;10 分)
$T = 1$。 $R = 100$。 $N = 3$。 $M = 5$。 $K = 7$。 你需要至少答对 $X=50$ 个集合。
第二个 Small 数据集(测试集 2 - 可见;31 分)
$T = 1$。 $R = 8000$。 $N = 12$。 $M = 8$。 $K = 12$。 你需要至少答对 $X=1120$ 个集合。
样例
输入 1
1 2 3 4 4 9 4 36 1 1 1 1 1
输出 1
Case #1: 343 222
说明
样例输入不遵循任何数据集的限制。在样例输入中,你需要至少答对 $X=1$ 个集合。
在样例输入中,Maryam 第一次挑选了数字 $3, 3, 4$,第二次挑选了数字 $2, 4, 4$。在样例输出中,Peiling 第一次猜对了,但第二次没有猜对。