考虑 $n$ 个椰子以及一个描述它们的数组 $d$。值 $d_i$ 是第 $i$ 个椰子的耐久度。这意味着第 $i$ 个椰子在受到 $d_i$ 次击打后会裂开。
随后这些椰子被洗牌了,因此现在无法确定哪个椰子具有哪种耐久度。
你的目标是使用恰好 $k$ 次击打尽可能多地敲开椰子。如果你使用最优策略,敲开椰子的期望数量是多少?
对于每一次击打,你可以任意选择一个椰子进行击打。在那之后,你会看到该椰子是否裂开。
输入格式
第一行包含两个整数 $n$ 和 $k$:分别为椰子的数量和所需的击打次数。 第二行包含 $n$ 个整数 $d_1, d_2, \dots, d_n$:椰子的耐久度。
数据范围
- $1 \le n \le 10$
- $1 \le d_i \le 10$
- $1 \le k \le \sum_{i=1}^{n} d_i$
输出格式
输出一个实数,表示如果你使用最优策略,敲开椰子的期望数量。结果的相对或绝对误差不应超过 $10^{-6}$。
样例
输入格式 1
3 2 1 3 3
输出格式 1
0.666666666667
输入格式 2
4 5 2 2 3 3
输出格式 2
1.833333333333
说明
以下是样例的最优策略:
- 随机击打一个椰子,然后再击打另一个。
- 选择一个椰子,击打它直到它裂开,然后切换到另一个直到它裂开,以此类推。