#include <bits/stdc++.h>
using namespace std;
int n, l, K;
struct data {
  int x;
  double p;
  bool operator<(const data &a) const { return x > a.x; }
} a[205];
double f[205][205][205];
double ans;
int main() {
  cin >> n >> l >> K;
  for (int i = 1; i <= n; i++) {
    int x;
    cin >> x;
    a[i].p = 1.0 * x / 100;
  }
  for (int i = 1; i <= n; i++) cin >> a[i].x;
  sort(a + 1, a + 1 + n);
  f[0][K][0] = 1;
  for (int i = 1; i <= n; i++) {
    if (a[i].x == -1)
      for (int j = 0; j <= 202; j++)
        for (int k = 0; k <= i - 1; k++) {
          if (j)
            f[i][j - 1][k + 1] += f[i - 1][j][k] * a[i].p,
                f[i][j][k] += f[i - 1][j][k] * (1.0 - a[i].p);
          else
            f[i][j][k] += f[i - 1][j][k] * (1.0 - a[i].p);
        }
    else
      for (int j = 0; j <= 202; j++)
        for (int k = 0; k <= i - 1; k++) {
          f[i][min(j + a[i].x, 202)][k + 1] += f[i - 1][j][k] * a[i].p;
          f[i][j][k] += f[i - 1][j][k] * (1.0 - a[i].p);
        }
  }
  for (int i = 0; i <= 202; i++)
    for (int j = l; j <= n; j++) ans += f[n][i][j];
  printf("%.10lf", ans);
  return 0;
}
