#include <bits/stdc++.h>
#pragma warning(disable : 4996)
using namespace std;
double mp[220][220][420];
vector<long double> p;
vector<int> a;
int n;
long double f(int i, int l, int k) {
  if (mp[i][210 + l][210 + k] > -0.5) return mp[i][210 + l][210 + k];
  double t;
  if (i == n)
    if (l <= 0 && k >= 0)
      t = 1;
    else
      t = 0;
  else
    t = p[i] * f(i + 1, max(0, l - 1), min(201, k + a[i])) +
        (1 - p[i]) * f(i + 1, l, k);
  mp[i][210 + l][210 + k] = t;
  return t;
}
int main() {
  for (int i = 0; i < (220); ++i)
    for (int j = 0; j < (220); ++j)
      for (int t = 0; t < (420); ++t) mp[i][j][t] = -1;
  int l, k;
  cin >> n >> l >> k;
  a.resize(n);
  p.resize(n);
  for (int i = 0; i < (n); ++i) {
    cin >> p[i];
    p[i] /= 100;
  }
  for (int i = 0; i < (n); ++i) cin >> a[i];
  cout << fixed << setprecision(9) << f(0, l, k) << endl;
  return 0;
}
