#include <bits/stdc++.h>
using namespace std;
double dyn[210][210][210];
bool u[210][210][210];
int n, l, k;
double p[256];
int a[256];
double rec(int pos, int have, int bags) {
  double &ret = dyn[pos][have][bags];
  if (u[pos][have][bags]) return ret;
  u[pos][have][bags] = true;
  ret = 0.0;
  if (pos == n) {
    if (have < l || bags < have) return ret = 0.0;
    return ret = 1.0;
  }
  if (a[pos] == -1) {
    double p1 = p[pos] * rec(pos + 1, have + 1, bags);
    double p2 = (1.0 - p[pos]) * rec(pos + 1, have, bags);
    return ret = p1 + p2;
  } else {
    double p1 = p[pos] * rec(pos + 1, have + 1, min(bags + a[pos] + 1, 200));
    double p2 = (1.0 - p[pos]) * rec(pos + 1, have, bags);
    return ret = p1 + p2;
  }
}
int main() {
  int i, j;
  memset(u, 0, sizeof(u));
  cin >> n >> l >> k;
  for (i = 0; i < n; ++i) {
    cin >> j;
    p[i] = j / 100.0;
  }
  for (i = 0; i < n; ++i) {
    cin >> a[i];
  }
  cout << rec(0, 0, k) << endl;
  return 0;
}
