#include <bits/stdc++.h>
using namespace std;
const int maxint = -1u >> 1;
const int maxn = 200 + 2;
int n, l, k;
double p[maxn];
int a[maxn];
double dp[maxn][maxn][maxn * 2];
int main() {
  while (scanf("%d%d%d", &n, &l, &k) == 3) {
    for (int i = 1; i <= n; ++i) {
      int x;
      scanf("%d", &x);
      p[i] = x * 0.01;
    }
    for (int i = 1; i <= n; ++i) {
      scanf("%d", &a[i]);
    }
    memset(dp, 0, sizeof(dp));
    dp[0][0][min(n + k, n * 2)] = 1;
    for (int i = 1; i <= n; ++i) {
      for (int j = 0; j <= i; ++j) {
        for (int k = 0; k <= n * 2; ++k) {
          dp[i][j][k] += (1 - p[i]) * dp[i - 1][j][k];
          dp[i][j + 1][min(k + a[i], n * 2)] += p[i] * dp[i - 1][j][k];
        }
      }
    }
    double ans = 0;
    for (int i = l; i <= n; ++i) {
      for (int j = n; j <= n * 2; ++j) {
        ans += dp[n][i][j];
      }
    }
    printf("%.12lf\n", ans);
  }
  return 0;
}
