#include <bits/stdc++.h>
using namespace std;
const static int inf = 10000000;
const static int mod = 1000000007;
double memo[205][205][205];
int main() {
  int n, l, k;
  while (cin >> n >> l >> k) {
    vector<int> p(n);
    for (int i = 0; i < (int)(n); i++) {
      cin >> p[i];
    }
    vector<int> a(n);
    for (int i = 0; i < (int)(n); i++) {
      cin >> a[i];
    }
    memset(memo, 0, sizeof(memo));
    memo[0][0][0] = 1.0;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < 205; j++) {
        for (int K = 0; K < 205; K++) {
          int c = a[i] + 1;
          memo[i + 1][j + 1][min(K + c, n)] += memo[i][j][K] * p[i] / 100;
          memo[i + 1][j][K] += memo[i][j][K] * (100 - p[i]) / 100;
        }
      }
    }
    double ans = 0.f;
    for (int j = 0; j < 205; j++) {
      for (int K = 0; K < 205; K++) {
        if (j >= l && K + k - j >= 0) {
          ans += memo[n][j][K];
        }
      }
    }
    printf("%.9f\n", ans);
  }
  return 0;
}
