1 #include<iostream>
2 #include<string>
3 #include<algorithm>
4 #include<cstdio>
5 #include<cstring>
6 #include<cstdlib>
7 #include<cmath>
8 using namespace std;
9
10 const int ONE = 205;
11
12 int n,Limit,K;
13 int a[ONE];
14 float p[ONE],Ans;
15 float f[ONE][ONE][ONE*2]; //i times j win k bag
16
17 int get()
18 {
19 int res=1,Q=1; char c;
20 while( (c=getchar())<48 || c>57)
21 if(c==‘-‘)Q=-1;
22 if(Q) res=c-48;
23 while((c=getchar())>=48 && c<=57)
24 res=res*10+c-48;
25 return res*Q;
26 }
27
28 int id(int x) {return min(x,n) + 200;}
29
30 int main()
31 {
32 n=get(); Limit=get(); K=get();
33 for(int i=1;i<=n;i++) scanf("%f",&p[i]), p[i]/=100.0;
34 for(int i=1;i<=n;i++) a[i]=get();
35
36 f[0][0][id(K)] = 1;
37 for(int i=0; i<=n-1; i++)
38 for(int j=0; j<=i; j++)
39 for(int k=-i; k<=n; k++)
40 {
41 f[i+1][j][id(k)] += f[i][j][id(k)] * (1.0-p[i+1]); // fail
42 f[i+1][j+1][id(k+a[i+1])] += f[i][j][id(k)] * p[i+1]; // win
43 }
44
45 for(int j=Limit; j<=n; j++)
46 for(int k=id(0); k<=id(n); k++)
47 Ans += f[n][j][k];
48
49 printf("%.6f", Ans);
50 }
51