#include <bits/stdc++.h>
using namespace std;
const int maxn = 205;
int n, l, s;
int b[maxn];
double f[maxn][maxn][maxn * 2], p[maxn], q[maxn];
inline int read() {
  int s = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') {
      f = -1;
    }
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    s = s * 10 + c - 48;
    c = getchar();
  }
  return s * f;
}
int main() {
  n = read(), l = read(), s = read();
  for (int i = 1; i <= n; i++) {
    scanf("%lf", &p[i]);
    p[i] /= 100;
    q[i] = 1.0 - p[i];
  }
  for (int i = 1; i <= n; i++) {
    b[i] = read();
  }
  f[0][0][s + 200] = 1;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= i; j++) {
      for (int k = 0; k <= 400; k++) {
        int t = min(k + b[i + 1], 400);
        f[i + 1][j][k] += f[i][j][k] * q[i + 1];
        if (t >= 0) {
          f[i + 1][j + 1][t] += f[i][j][k] * p[i + 1];
        }
      }
    }
  }
  double ans = 0.0;
  for (int i = 200; i <= 400; i++) {
    for (int j = l; j <= n; j++) {
      ans += f[n][j][i];
    }
  }
  printf("%.12lf", ans);
  return 0;
}
