#include <bits/stdc++.h>
using namespace std;
double dp[205] = {};
double space[205][205] = {};
int main() {
  int n, l, k;
  cin >> n >> l >> k;
  vector<int> p(n), a(n);
  for (int i = 0; i < n; i++) cin >> p[i];
  for (int i = 0; i < n; i++) cin >> a[i];
  dp[0] = 1;
  space[0][0] = 1;
  for (int i = 0; i < n; i++) {
    if (a[i] == -1) {
      double dp1[205] = {};
      for (int k = 0; k <= 200; k++) {
        dp1[k + 1] += dp[k] * p[i] / 100;
        dp1[k] += dp[k] * (100 - p[i]) / 100;
      }
      for (int k = 0; k < 205; k++) dp[k] = dp1[k];
    } else {
      double space1[205][205] = {};
      for (int j = 203; j >= 0; j--)
        for (int k = 0; k <= 200; k++) {
          space1[j + 1][min(200, k + a[i])] += space[j][k] * p[i] / 100;
          space1[j][min(200, k)] += space[j][k] * (100 - p[i]) / 100;
        }
      for (int j = 0; j < 205; j++)
        for (int k = 0; k < 205; k++) space[j][k] = space1[j][k];
    }
  }
  double ans = 0.0;
  for (int i = 0; i < 205; i++)
    for (int s = 0; s < 205; s++) {
      for (int j = 0; j < 205 && j <= s + k; j++) {
        if (i + j < l) continue;
        ans += space[i][s] * dp[j];
      }
    }
  printf("%.8lf\n", ans);
  return 0;
}
