#include <bits/stdc++.h>
using namespace std;
int n;
double p[205];
int a[205];
bool vis[205][205][205 * 3];
double dp[205][205][205 * 3];
double call(int pos, int l, int k) {
  if (pos == n) {
    if (l != 0) return 0;
    if (k < 205) return 0;
    return 1;
  }
  if (vis[pos][l][k]) return dp[pos][l][k];
  vis[pos][l][k] = 1;
  double pro = p[pos];
  double ret = 0;
  ret += call(pos + 1, max(l - 1, 0), min(n + 205, k + a[pos])) * pro;
  ret += call(pos + 1, l, k) * (1.0 - pro);
  return dp[pos][l][k] = ret;
}
int main() {
  int l, k;
  cin >> n >> l >> k;
  for (__typeof(n) i = 0; i < (n); i++) cin >> p[i], p[i] /= 100.0;
  for (__typeof(n) i = 0; i < (n); i++) cin >> a[i];
  printf("%.10lf\n", call(0, l, k + 205));
  return 0;
}
