你是冗余削减与多余缩减部门的负责人。目前,部门内部对于是否存在过多的“繁文缛节”(低效)无法达成一致。他们要求你组建一个“繁文缛节委员会”来对该议题进行投票。
部门共有 $N$ 名成员。对于每名成员,已知其投“赞成”票的概率 $P_i$。如果成员不投“赞成”票,则必然投“反对”票;没有人会弃权。
你必须从部门中选出恰好 $K$ 名成员组成委员会。部门规定 $K$ 必须为偶数,以便出现平局,这被视为健康官僚体制的一部分。
如果你选择委员会成员以最大化平局的概率,那么这个概率是多少?
输入格式
输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例;每个测试用例包含两行。第一行包含两个整数 $N$ 和 $K$,分别表示部门的总人数和委员会的人数。第二行包含 $N$ 个十进制数值 $P_i$;每个数值精确到小数点后两位,表示第 $i$ 名部门成员投“赞成”票的概率。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是一个浮点数:最大可能的平局概率。如果 $y$ 与正确答案的绝对误差或相对误差不超过 $10^{-6}$,则被视为正确。
数据范围
$1 \le T \le 100$ $2 \le K \le N$ $K$ 为偶数 $0.00 \le P_i \le 1.00$
样例
输入 1
3 2 2 0.50 0.50 4 2 0.00 0.00 1.00 1.00 3 2 0.75 1.00 0.50
输出 1
Case #1: 0.5 Case #2: 1.0 Case #3: 0.5
说明
在样例 1 中,你必须使用仅有的两名部门成员来组成委员会。该委员会仅在两名成员投票结果不同时才会出现平局,这种情况发生的概率为一半。(不失一般性,假设第一个人的投票结果已定,那么第二个人投出相反票的概率为 0.5。)
在样例 2 中,最佳策略是挑选一名“赞成”概率为 0.00 的成员和一名“赞成”概率为 1.00 的成员。这保证了平局。
在样例 3 中,假设我们挑选“赞成”概率分别为 0.50 和 0.75 的两名成员。如果第一个人投“赞成”且第二个人投“反对”(概率为 $0.5 \times 0.25 = 0.125$),或者第一个人投“反对”且第二个人投“赞成”(概率为 $0.5 \times 0.75 = 0.375$),则会出现平局。因此,平局的总概率为 $0.125 + 0.375 = 0.5$。选择“赞成”概率为 0.50 和 1.00 的两名成员也会使平局概率为 0.5,因为 1.00 的成员会投“赞成”,而 0.50 的成员必须投“反对”。选择“赞成”概率为 0.75 和 1.00 的两名成员会使平局概率仅为 0.25,因为 1.00 的成员会投“赞成”,而 0.75 的成员必须投“反对”。所以 0.5 是我们能做到的最好结果。