#include <bits/stdc++.h>
using namespace std;
const int maxN = 201;
double mem[maxN][maxN][maxN];
int N;
pair<int, double> p[maxN];
double f(int n, int l, int k) {
  double &res = mem[n + 1][l][k];
  if (res >= 0) return res;
  if (n < 0) return res = l ? 0 : 1;
  res = (1 - p[n].second) * f(n - 1, l, k);
  if (p[n].first != -1 || k > 0)
    res += p[n].second * f(n - 1, max(l - 1, 0), min(n, k + p[n].first));
  return res;
}
int main() {
  int x, L, K;
  scanf("%d", &N);
  scanf("%d", &L);
  scanf("%d", &K);
  for (int i = 0; i < (N); ++i) scanf("%d", &x), p[i].second = x / 100.;
  for (int i = 0; i < (N); ++i) scanf("%d", &p[i].first);
  sort(p, p + N);
  memset(mem, 0xFF, sizeof(mem));
  printf("%.12lf\n", f(N - 1, L, K));
  return 0;
}
