#include <bits/stdc++.h>
using namespace std;
const int maxn = 400 + 02;
int n, l, k, a[maxn];
double dp[202][202][402], ans, p[maxn];
int main() {
  scanf("%d %d %d", &n, &l, &k);
  for (int i = 1; i <= n; i++) {
    scanf("%lf", &p[i]);
    p[i] /= 100;
  }
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
  }
  dp[0][0][200 + k] = 1;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < i; j++) {
      for (int k = 0; k <= 400; k++) {
        if (a[i] == -1) {
          if (k >= 1) {
            dp[i][j + 1][k - 1] += dp[i - 1][j][k] * p[i];
            dp[i][j][k] += dp[i - 1][j][k] * (1 - p[i]);
          } else {
            dp[i][j][k] += dp[i - 1][j][k] * (1 - p[i]);
          }
        } else {
          int maxx = min(400, k + a[i]);
          dp[i][j + 1][maxx] += dp[i - 1][j][k] * p[i];
          dp[i][j][k] += dp[i - 1][j][k] * (1 - p[i]);
        }
      }
    }
  }
  for (int i = l; i <= n; i++) {
    for (int k = 200; k <= 400; k++) {
      ans += dp[n][i][k];
    }
  }
  printf("%.6f\n", ans);
  return 0;
}
