#include <bits/stdc++.h>
using namespace std;
double dp[200 + 50][200 + 50][200 + 50];
double p[200 + 50];
double res;
int a[200 + 50];
int n, l, x, kol;
int main() {
  scanf("%d%d%d", &n, &l, &kol);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &x);
    p[i] = (x + 0.0) / 100;
  }
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    a[i]++;
  }
  memset(dp, 0, sizeof(dp));
  dp[0][0][0] = 1;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j <= i; j++) {
      for (int k = 0; k <= n; k++) {
        dp[i + 1][j + 1][min(n, k + a[i + 1])] += dp[i][j][k] * p[i + 1];
        dp[i + 1][j][k] += dp[i][j][k] * (1 - p[i + 1]);
      }
    }
  }
  res = 0;
  for (int i = l; i <= n; i++) {
    for (int j = max(0, l - kol); j <= n; j++) {
      if (i <= j + kol) res += dp[n][i][j];
    }
  }
  printf("%llf", res);
  return 0;
}
