#include<bits/stdc++.h>
using namespace std;
const int N=205;
int n,l,k;
double dp[N][N<<1][N],p[N];
bool vis[N][N<<1][N];
int a[N];
double dfs(int u,int K,int c)
{
if(u==n)
{
if(K>=200&&c>=l)
return 1;
return 0;
}
if(vis[u][K][c])
return dp[u][K][c];
vis[u][K][c]=1;
return dp[u][K][c]=p[u+1]*dfs(u+1,min(K+a[u],400),c+1)+(1-p[u+1])*dfs(u+1,K,c);
}
signed main()
{
cin>>n>>l>>k;
for(int i=1;i<=n;++i)
cin>>p[i],p[i]/=100;
for(int i=1;i<=n;++i)
cin>>a[i];
cout<<fixed<<setprecision(6)<<dfs(0,k+200,0);
}