#include<bits/stdc++.h>
using namespace std;
const int N=201;
double f[2][N][N<<1],p[N];
int a[N],n,L,k;
inline int Hale()
{
freopen("guarda.in","r",stdin);
freopen("guarda.out","w",stdout);
scanf("%d%d%d",&n,&L,&k);
for (int i=1;i<=n;i++) scanf("%lf",&p[i]),p[i]/=100.0;
for (int i=1;i<=n;i++) scanf("%d",&a[i]);
if (k>n) k=n;
f[0][0][k+200]=1;
int now=0;
for (int i=0;i<n;i++)
{
now^=1;
for (int j=0;j<=n;j++)
for (int k=-i;k<=n;k++) f[now][j][k+200]=0;
for (int j=0;j<=i;j++)
for (int k=-i;k<=n;k++)
{
f[now][j+1][min(n,k+a[i+1])+200]+=f[now^1][j][k+200]*p[i+1];
f[now][j][k+200]+=(1.0-p[i+1])*f[now^1][j][k+200];
}
}
double ans=0;
for (int j=L;j<=n;j++)
for (int k=0;k<=n;k++)
ans+=f[now][j][k+200];
printf("%.6lf\n",ans);
return 0;
}
int gg=Hale();
int main()
{;}