#codethanksfestival14qualag. [code_thanks_festival_14_quala_g]通勤電車と気分

[code_thanks_festival_14_quala_g]通勤電車と気分

问题说明

我是通勤火车的专家。今天我正在站台上等待火车。由于这是本站的始发车,所以所有座位都是空闲的,但是我不知道能否坐下,因为有 NN 个人排在我前面。

车厢里有 KK 个座位,按顺序排列,每个座位从 11KK 编号。你可能会认为,通过知道座位数和前面排队的人数,就能判断能否坐下来。但事实并不那么简单。

我知道,人们根据当天的心情选择座位的方式会变化。具体来说,一天的心情有两种:

  • "无论如何都想坐下":这种情况下,只要有空座位,就会选择编号最小的座位。
  • "如果条件允许,我愿意坐下":这种情况下,只要有空座位,并且两侧的座位也是空的,就会选择编号最小的座位。即使没有相邻的座位,也可以假设相邻的座位为空。

无论是哪种情况,如果找不到符合条件的座位,就会放弃坐下。

现在,我们将排在我前面的人按顺序编号为 11, 22, \ldots, NN。也就是说,首先人 11 进入车厢,根据当天的心情选择座位。然后人 22 进入车厢,根据当天的心情选择座位。依此类推,直到人 NN 进入车厢并选择完座位,最后轮到我进入车厢。

根据我的估计,第 ii 个人有 pip_i 的概率选择"无论如何都想坐下"的心情,有 100pi100 - p_i 的概率选择"如果条件允许,我愿意坐下"的心情。在这个假设下,当 NN 个人都进入车厢并选择完座位时,也就是我进入车厢时,计算出剩余空座位的期望值。


输入

NN KK p1p_1 p2p_2 : pNp_N

  • 第一行是两个整数 NN (1N1001 \leq N \leq 100) 和 KK (1K2001 \leq K \leq 200),分别表示排队的人数和车厢中的座位数。
  • 接下来的 NN 行,每行一个整数,表示每个人选择"无论如何都想坐下"心情的概率 pip_i (0pi1000 \leq p_i \leq 100)。

部分分

本问题有部分分。

  • 对于每个满足 N10N \leq 10 的数据集,如果全部正确,得到 3030 分。
  • 如果对所有数据集都正确,额外得到 7070 分,总共得到 100100 分。

输出

当第 NN 个人进入车厢并选择完座位时,即我进入车厢时,输出剩余空座位的期望值,保留小数点后 66 位。如果与真实值的绝对误差或相对误差不超过 10610^{-6},则视为正确。


示例1


3 4
100
30
60

输出1


1.28

由于人 11 总是选择"无论如何都想坐下"的心情,我们只需考虑人 2233 的心情:

  • 2233 都选择"无论如何都想坐下"的概率是 0.3×0.6=0.180.3 \times 0.6 = 0.18,剩余 11 个座位。
  • 22 选择"无论如何都想坐下"的心情,而人 33 选择"如果条件允许,我愿意坐下"的心情的概率是 0.3×0.4=0.120.3 \times 0.4 = 0.12,剩余 11 个座位。
  • 22 选择"如果条件允许,我愿意坐下"的心情,而人 33 选择"无论如何都想坐下"的心情的概率是 0.7×0.6=0.420.7 \times 0.6 = 0.42,剩余 11 个座位。
  • 2233 都选择"如果条件允许,我愿意坐下"的概率是 0.7×0.4=0.280.7 \times 0.4 = 0.28,剩余 22 个座位。

因此,剩余空座位的期望值为 $1 \times 0.18 + 1 \times 0.12 + 1 \times 0.42 + 2 \times 0.28 = 1.28$。


示例2


5 7
28
31
59
61
30

输出2


2.11193

示例3


10 10
97
98
99
98
97
96
97
98
99
98

输出3


0.020237732