#include <bits/stdc++.h>
using namespace std;
int n, l, k;
double p[205];
int arr[205];
double dp[205][205][505];
double sol(int ind, int rem, int prize) {
  if (ind == n) return (rem >= l) && (prize >= 0);
  if (dp[ind][rem][prize + n] >= 0) return dp[ind][rem][prize + n];
  double a, b;
  if (arr[ind] == -1)
    return dp[ind][rem][prize + n] =
               (p[ind] * sol(ind + 1, rem + 1, prize - 1)) +
               ((1 - p[ind]) * sol(ind + 1, rem, prize));
  else
    return dp[ind][rem][prize + n] =
               (p[ind] * sol(ind + 1, rem + 1, min(n, prize + arr[ind]))) +
               ((1 - p[ind]) * sol(ind + 1, rem, prize));
}
int main() {
  memset(dp, -1, sizeof dp);
  cin >> n >> l >> k;
  int i;
  for (i = 0; i < n; i++) {
    cin >> p[i];
    p[i] /= 100.0;
  }
  for (i = 0; i < n; i++) cin >> arr[i];
  printf("%.10f\n", sol(0, 0, k));
}
