#include <bits/stdc++.h>
using namespace std;
int n, l, k, p[201], a[201];
double dp[201][201][575 + 250];
double pWin(int x) { return ((1.0 * p[x]) / 100.00); }
double pLose(int x) { return (1 - ((1.0 * p[x]) / 100.00)); }
double solve(int x, int ll, int bag) {
  if (x == n) return (bag >= 0 && ll >= l) ? 1.0 : 0.0;
  double &ret = dp[x][ll][bag + 250];
  if (ret >= 0) return ret;
  ret = max(0.0, (solve(x + 1, ll, bag) * pLose(x)) +
                     (solve(x + 1, ll + 1, min(524, bag + a[x])) * pWin(x)));
  return ret;
}
int main() {
  memset(p, 0, sizeof(p));
  memset(a, 0, sizeof(a));
  memset(dp, -1, sizeof(dp));
  scanf("%d %d %d", &n, &l, &k);
  for (int i = 0; i < n; i++) scanf("%d", &p[i]);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  printf("%0.15lf", solve(0, 0, k));
}
