#include <bits/stdc++.h>
using namespace std;
double dp[210][210][410];
int p[210];
int a[210];
int main() {
  int n, l, k;
  while (scanf("%d%d%d", &n, &l, &k) != EOF) {
    int i, j, z;
    for (i = 1; i <= n; i++) {
      scanf("%d", &p[i]);
    }
    for (i = 1; i <= n; i++) {
      scanf("%d", &a[i]);
    }
    memset(dp, 0, sizeof(dp));
    dp[0][0][200 + k] = 1;
    for (i = 1; i <= n; i++) {
      for (j = 0; j <= i; j++) {
        for (z = 0; z <= 400; z++) {
          dp[i][j][z] += dp[i - 1][j][z] * (100.0 - p[i]) / 100.0;
          if (a[i] == -1) {
            if (z > 0) dp[i][j + 1][z - 1] += dp[i - 1][j][z] * p[i] / 100.0;
          } else {
            dp[i][j + 1][(z + a[i]) >= 400 ? 400 : (z + a[i])] +=
                dp[i - 1][j][z] * p[i] / 100.0;
          }
        }
      }
    }
    double ans = 0;
    for (j = l; j <= n; j++) {
      for (k = 200; k <= 400; k++) ans += dp[n][j][k];
    }
    printf("%.12lf\n", ans);
  }
  return 0;
}
