#include <bits/stdc++.h>
using namespace std;
int n, l, k, p[222], a[222];
double dp[210][410][210];
double f(int cur, int cap, int win) {
  if (n - cur < l - win) return 0;
  double& res = dp[cur][cap + 200][win];
  if (res > -1) return res;
  res = 0;
  if (cur == n) {
    return res = cap >= 0 ? 1 : 0;
  }
  res += p[cur] / 100. * f(cur + 1, min(n, cap + a[cur]), min(l, win + 1));
  res += (1. - p[cur] / 100.) * f(cur + 1, cap, win);
  return res;
}
int main() {
  cin >> n >> l >> k;
  for (int i = 0; i < n; i++) cin >> p[i];
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n + 1; i++)
    for (int j = 0; j < 410; j++)
      for (int ii = 0; ii < l + 1; ii++) dp[i][j][ii] = -2;
  cout << setprecision(11) << f(0, k, 0);
}
