#include <bits/stdc++.h>
using namespace std;
int n, l, k, x;
double f[205][205][205], ans;
struct Node {
  int a;
  double p;
} v[205];
bool comp(Node a, Node b) { return a.a > b.a; }
int main() {
  scanf("%d%d%d", &n, &l, &k);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &x);
    v[i].p = x / 100.0;
  }
  for (int i = 1; i <= n; i++) scanf("%d", &v[i].a);
  sort(v + 1, v + n + 1, comp);
  f[0][0][min(k, n)] = 1;
  for (int i = 1; i <= n; i++)
    for (int j = 0; j < i; j++)
      for (int k = 0; k <= n; k++) {
        f[i][j][k] += f[i - 1][j][k] * (1 - v[i].p);
        if (v[i].a >= 0)
          f[i][j + 1][min(n, k + v[i].a)] += f[i - 1][j][k] * v[i].p;
        if (k && !~v[i].a) f[i][j + 1][k - 1] += f[i - 1][j][k] * v[i].p;
      }
  for (int i = l; i <= n; i++)
    for (int j = 0; j <= n; j++) ans += f[n][i][j];
  printf("%.6f", ans);
}
