#include <bits/stdc++.h>
using namespace std;
int n, l, k, a[200], p[200];
double memo[200][201][201];
bool seen[200][201][201];
double solve(int idx, int kk, int ll) {
  if (kk < 0) {
    return 0;
  }
  if (idx == n) {
    return ll >= l;
  }
  if (seen[idx][kk][ll]) {
    return memo[idx][kk][ll];
  }
  double prob = p[idx];
  prob /= 100;
  double ans = solve(idx + 1, kk, ll) * (1 - prob);
  if (a[idx] > 0) {
    ans += solve(idx + 1, min(a[idx] + kk, 200), ll + 1) * prob;
  }
  if (a[idx] == -1 && kk) {
    ans += solve(idx + 1, kk - 1, ll + 1) * prob;
  }
  seen[idx][kk][ll] = 1;
  return memo[idx][kk][ll] = ans;
}
int main() {
  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]);
  }
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      if (a[i] < a[j]) {
        swap(a[i], a[j]);
        swap(p[i], p[j]);
      }
    }
  }
  printf("%.6lf\n", solve(0, k, 0));
  return 0;
}
