#include <bits/stdc++.h>
using namespace std;
const int N = 1000 + 10, MOD = 998244353;
int n, l, k;
double dp[202][202][404];
double pro[300];
int a[N];
double solve(int i, int sofar, int cap) {
  if (i == n + 1) {
    return sofar >= l && cap >= 0;
  }
  double &ret = dp[i][sofar][cap + 200];
  if (ret == ret) return ret;
  int toref = min(200, cap + a[i]);
  toref = max(toref, -200);
  double c1 = solve(i + 1, sofar + 1, toref) * pro[i];
  double c2 = solve(i + 1, sofar, cap) * (1 - pro[i]);
  return ret = c1 + c2;
}
int main() {
  cin >> n >> l >> k;
  for (int i = 1; i <= n; ++i) {
    cin >> pro[i];
    pro[i] /= 100.0;
  }
  for (int i = 1; i <= n; ++i) cin >> a[i];
  memset(dp, -1, sizeof(dp));
  cout << fixed << setprecision(10) << solve(1, 0, k) << endl;
}
