#include <bits/stdc++.h>
using namespace std;
int n, l, k;
double p[200];
int bag[200];
double dp[201][201][201];
double rec(int pos, int won, int size) {
  if (pos == n) return won >= l;
  double &ret = dp[pos][won][size];
  if (ret != -1) return ret;
  if (bag[pos] == -1) {
    ret = 0;
    ret += (1 - p[pos]) * rec(pos + 1, won, size);
    if (size > 0) ret += p[pos] * rec(pos + 1, won + 1, size - 1);
    return ret;
  } else {
    ret = 0;
    ret += p[pos] * rec(pos + 1, won + 1, min(200, size + bag[pos]));
    ret += (1 - p[pos]) * rec(pos + 1, won, size);
    return ret;
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> l >> k;
  vector<pair<int, int> > vs(n);
  for (int i = 0; i < (int)(n); i++) cin >> vs[i].second;
  for (int i = 0; i < (int)(n); i++) cin >> vs[i].first;
  sort(vs.rbegin(), vs.rend());
  for (int i = 0; i < (int)(n); i++) {
    bag[i] = vs[i].first;
    p[i] = vs[i].second / 100.0;
  }
  for (int i = 0; i < (int)(201); i++)
    for (int j = 0; j < (int)(201); j++)
      for (int k = 0; k < (int)(201); k++) dp[i][j][k] = -1;
  cout << fixed << setprecision(8);
  cout << rec(0, 0, k) << endl;
  return 0;
}
