作为一名计算机科学专业的学生,生活是艰辛的。除了课程相关的挑战外,还有经济上的压力。虽然部分资金需要用于食物、房租等,但我们都同意,确保你那珍贵的电脑始终正常运行更为重要。
尽管来自 Lånekassen 的资助在整个学期中分布得比较均匀,但你已经意识到,除了第一个月,你得到的钱都需要用于食物和房租。因此,你必须从第一个月的预算中拨出电脑预算,并确保有一笔确定的金额可用。如果你第一个月没有用掉这笔钱,你肯定会把它浪费在小玩意儿上,所以最好在拿到钱后尽快明智地将其花在电脑设备上。
众所周知,电脑由多个组件组成。如果其中任何一个组件发生故障,电脑就会瘫痪。如果这种情况发生,你当然会感到不便,不得不找别的事情做,而且在电脑坏掉时,你还得忍受朋友们不断的嘲笑。显然,你需要提前规划以避免这种尴尬的情况。
你意识到应该将电脑预算用于购买备用组件。这样,如果某个组件发生故障,你可以立即更换它,电脑就能再次工作。组件的故障率不同,价格也不同。你现在的任务是,在有限的预算内决定购买多少个每个组件的备用件,从而最大化电脑在整个学期内正常工作的概率。
为了解决这个问题,你必须对电脑中不同组件的故障率进行建模。这通常使用泊松分布来完成:
$$P_i(k, t) = \frac{e^{-\lambda_i t}(\lambda_i t)^k}{k!}$$
$P_i(k, t)$ 是组件 $i$ 在 $t$ 个时间单位内恰好发生 $k$ 次故障的概率。我们每次只考虑一个学期的问题。因此,变量 $t$ 可以永久设为 1,方程简化为:
$$P_i(k) = \frac{e^{-\lambda_i} \lambda_i^k}{k!}$$
$\lambda_i$ 是组件 $i$ 在一个学期内预期的故障次数。你可以假设一个组件发生故障的概率与其他组件的故障是相互独立的。
输入格式
输入包含 $n \le 50$ 个测试用例,第一行是一个正整数 $n$。
每个测试用例包含 3 行。第一行包含两个由空格分隔的正整数,$1 \le c \le 500$ 和 $0 \le b \le 500$。$c$ 是电脑中可能发生故障的组件数量,$b$ 是你的电脑预算金额。
接下来一行包含 $c$ 个双精度浮点数。第 $i$ 个数表示组件 $i$ 在一个学期内的预期故障次数,$0.0 \le \lambda_i \le 5.0$。
每个测试用例的最后一行包含 $c$ 个正整数。第 $i$ 个数表示组件 $i$ 的价格,$1 \le r_i \le 100$。
输出格式
对于每个测试用例,输出一行,表示你能达到的最大生存概率,保留 5 位小数。
样例
输入 1
2 2 3 0.5 0.3 3 1 3 10 0.8 0.0 0.2 5 3 2
输出 1
0.67399 0.80786
Figure 1. A student distressed by a broken computer.