#include <bits/stdc++.h>
using namespace std;
const int N = 202;
int n, l, k, i;
pair<int, int> a[N];
double dp[N][N][N];
double solve(int idx = 0, int rem = l, int cap = k) {
  if (cap < 0) return 0;
  if (idx >= n) return (rem <= 0);
  double &ret = dp[idx][rem][cap];
  if (ret == ret) return ret;
  double p = a[idx].second / 100.0;
  return ret = solve(idx + 1, rem - 1, min(cap + a[idx].first, N - 1)) * p +
               solve(idx + 1, rem, cap) * (1 - p);
}
int main() {
  cin >> n >> l >> k;
  for (i = 0; i < n; ++i) cin >> a[i].second;
  for (i = 0; i < n; ++i) cin >> a[i].first;
  sort(a, a + n, greater<pair<int, int>>());
  memset(dp, -1, sizeof dp);
  printf("%0.9lf\n", solve());
  return 0;
}
