#include <bits/stdc++.h>
using namespace std;
double dp[210][210], dp2[210][210];
int main() {
  int i, j, m, n, l, k, a[210];
  double p[210];
  vector<pair<int, double>> val;
  cin >> n >> l >> k;
  k = min(k, n);
  dp[0][k] = 1.0;
  for (i = 0; i < n; i++) {
    cin >> p[i];
    p[i] /= 100.0;
  }
  for (i = 0; i < n; i++) {
    cin >> a[i];
    val.push_back({a[i], p[i]});
  }
  sort(val.begin(), val.end(), greater<pair<int, double>>());
  for (i = 0; i < n; i++) {
    a[i] = val[i].first;
    p[i] = val[i].second;
  }
  for (i = 0; i < n; i++) {
    for (j = 0; j <= n; j++)
      for (m = 0; m <= n; m++) dp2[j][m] = 0;
    for (j = 0; j <= i; j++)
      for (m = 0; m <= n; m++) {
        if ((m + a[i]) >= 0) dp2[j + 1][min(m + a[i], n)] += dp[j][m] * (p[i]);
        dp2[j][m] += dp[j][m] * (1 - p[i]);
      }
    swap(dp, dp2);
  }
  double ans = 0.0;
  for (i = l; i <= n; i++)
    for (m = 0; m <= n; m++) ans += dp[i][m];
  printf("%.6lf", ans);
}
