#include <bits/stdc++.h>
using namespace std;
const int N = 200 + 5;
int read() {
  int x = 0, f = 1;
  char a = getchar();
  for (; a > '9' || a < '0'; a = getchar())
    if (a == '-') f = -1;
  for (; a >= '0' && a <= '9'; a = getchar()) x = x * 10 + a - '0';
  return x * f;
}
int n, l, K;
double dp[N][N][N * 2];
double p[N];
int a[N];
int main() {
  n = read();
  l = read();
  K = read();
  for (register int i = 1; i <= n; i++) p[i] = read() / 100.0;
  for (register int i = 1; i <= n; i++) a[i] = read();
  dp[0][0][K + 200] = 1;
  for (register int i = 0; i < n; i++) {
    for (register int j = 0; j <= i; j++)
      for (register int k = 0; k <= 400; k++) {
        if (a[i + 1] == -1) {
          dp[i + 1][j][k] += dp[i][j][k] * (1 - p[i + 1]);
          if (k) dp[i + 1][j + 1][k - 1] += dp[i][j][k] * p[i + 1];
        } else {
          dp[i + 1][j][k] += dp[i][j][k] * (1 - p[i + 1]);
          dp[i + 1][j + 1][min(k + a[i + 1], 400)] += dp[i][j][k] * p[i + 1];
        }
      }
  }
  double ans = 0;
  for (register int i = l; i <= n; i++)
    for (register int j = 200; j <= 400; j++) ans += dp[n][i][j];
  printf("%.12lf\n", ans);
  return 0;
}
