#3430. 巫师与大奖

巫师与大奖

题目描述

想在巫术竞赛中取得好成绩,就必须勤加训练。因此,巫术学校和魔法集训营遍布各地。

其中一所魔法学校由 nn 轮比赛组成,每轮的优胜者都会获得一份大奖。学校离家很远,所以所有奖品必须一次带回。而你随身携带的包最多只能装下 kk 份大奖。

除了想带所有奖品回家之外,你还想表现得体面。如果至少赢下 ll 轮比赛,你就认为自己表现不错。

多年的办赛经验让主办方意识到,搬运大奖对参赛者是个大麻烦。可惜从来没有人发明过能把奖品变小的魔咒……于是解决方案是:某些轮次中,优胜者得到的不是大奖,而是一个包。每个包用一个数 aia_i 描述——它能装下的大奖数量。

你已经知道所有轮次的科目,所以可以估计自己赢得第 ii 轮的概率 pip_i。任何一轮都不能跳过。

求你既表现体面、又能把赢来的所有奖品带回家的概率(即把赢到的所有大奖装进"赢来的包 + 自带的包"里)。

输入格式

第一行包含三个整数 nn、ll、kk(1≤n≤2001 \le n \le 200,0≤l,k≤2000 \le l, k \le 200),分别表示轮数、最少要赢的轮数和自带包能装下的大奖数。

第二行包含 nn 个用空格隔开的整数 pip_i(0≤pi≤1000 \le p_i \le 100),即赢得第 ii 轮的概率(百分数)。

第三行包含 nn 个用空格隔开的整数 aia_i(1≤ai≤2001 \le a_i \le 200):若第 ii 轮的奖品是一个包,则 aia_i 是该包的容量;若第 ii 轮的奖品是大奖,则 ai=−1a_i = -1。

输出格式

输出一个实数,即答案。绝对误差或相对误差不超过 10−610^{-6} 即视为正确。

3 1 0
10 20 30
-1 -1 2
0.300000000000
1 1 1
100
123
1.000000000000

说明/提示

第一组样例中,要么一轮都不赢,要么只赢第三轮。若一轮都不赢就不算表现好,所以必须赢下第三轮,此时其他条件也满足。赢下第三轮的概率是 0.3。

第二组样例中,以概率 1.0 赢下唯一一轮,并带着赢来的包回家。