#include <bits/stdc++.h>
using namespace std;
int p[201], bag[201];
int n, l, k;
double mem[202][202][202];
double solve(int r, int bagwon, int prizewon) {
  if (mem[r][bagwon][prizewon] >= -.5) return mem[r][bagwon][prizewon];
  if (r == n)
    return mem[r][bagwon][prizewon] =
               bagwon + k >= prizewon && prizewon >= l ? 1 : 0;
  if (bag[r] == -1)
    return mem[r][bagwon][prizewon] =
               double(p[r] * solve(r + 1, bagwon, prizewon + 1) +
                      (100 - p[r]) * solve(r + 1, bagwon, prizewon)) /
               100;
  else
    return mem[r][bagwon][prizewon] =
               double(p[r] * solve(r + 1, min(200, bagwon + bag[r] + 1),
                                   prizewon + 1) +
                      (100 - p[r]) * solve(r + 1, bagwon, prizewon)) /
               100;
}
int main() {
  memset(mem, -1, sizeof mem);
  cin >> n >> l >> k;
  for (int i = 0; i < n; i++) cin >> p[i];
  for (int i = 0; i < n; i++) cin >> bag[i];
  cout.precision(100);
  cout << fixed << solve(0, 0, 0) << endl;
  return 0;
}
