#include <bits/stdc++.h>
using namespace std;
int n, l, k;
double probs[200];
int bags[200];
double dp[201][410][201];
double solve(int index, int currCapacity, int wonTours) {
  if (index == n) {
    if (wonTours >= l) {
      if (currCapacity >= 0)
        return 1.0;
      else
        return 0.0;
    } else {
      return 0.0;
    }
  }
  double &calculated = dp[index][currCapacity + 201][wonTours];
  if (calculated + 1.0 > 1e-4) return calculated;
  double ans = 0.0;
  ans = probs[index] * solve(index + 1, min(405, currCapacity + bags[index]),
                             wonTours + 1) +
        (1.0 - probs[index]) * solve(index + 1, currCapacity, wonTours);
  return calculated = ans;
}
int main() {
  cin >> n >> l >> k;
  memset(dp, -1.0, sizeof(dp));
  for (int i = 0; i <= n - 1; i++) {
    cin >> probs[i];
    probs[i] /= 100.0;
  }
  for (int i = 0; i <= n - 1; i++) {
    cin >> bags[i];
  }
  printf("%.10f", solve(0, k, 0));
  return 0;
}
