#include <bits/stdc++.h>
using namespace std;
void dump(const map<pair<int, int>, double>& d) {
  for (auto& kv : d) {
    auto val = kv.first;
    cout << "(" << val.first << ", " << val.second << "): " << kv.second
         << "\n";
  }
  cout << endl;
}
void test() {
  freopen("1.in", "w", stdout);
  cout << "200 200 200\n";
  for (int i = 0; i < 200; i++) {
    cout << "80 ";
  }
  cout << endl;
  for (int i = 0; i < 200; i++) {
    cout << (i == 0 ? -1 : i) << " ";
  }
  cout << endl;
}
int main() {
  cin.tie(nullptr);
  ios::sync_with_stdio(false);
  cout << fixed << setprecision(10);
  int n, l, k;
  cin >> n >> l >> k;
  vector<int> p(n);
  for (int& pi : p) cin >> pi;
  vector<int> a(n);
  for (int& ai : a) cin >> ai;
  map<pair<int, int>, double> d;
  d[make_pair(0, k)] = 1.;
  for (int i = 0; i < n; i++) {
    map<pair<int, int>, double> dNew;
    for (auto& kv : d) {
      auto prev = kv.first;
      auto p1 = make_pair(prev.first + 1, min(prev.second + a[i], n + 1));
      dNew[p1] += kv.second * 0.01 * p[i];
      dNew[prev] += kv.second * 0.01 * (100 - p[i]);
    }
    d = dNew;
  }
  double result = 0;
  for (auto& kv : d) {
    auto val = kv.first;
    if (val.first >= l && val.second >= 0) {
      result += kv.second;
    }
  }
  cout << result << "\n";
}
