#include <bits/stdc++.h>
using namespace std;
const double TOLL = 1e-9;
int N, L, K;
int a[210];
double p[210];
const int maxn = 400;
double dp[201][401][maxn + 2];
double rec(int ind, int l, int cap) {
  if (cap < -202) cap = -200;
  if (cap > 202) cap = 200;
  if (ind == N) {
    if (l <= 0 && cap >= 0) return 1;
    return 0;
  }
  if (dp[ind][l + 200][cap + 200] > -.5) return dp[ind][l + 200][cap + 200];
  double rv = p[ind] * rec(ind + 1, l - 1, cap + a[ind]) +
              (1 - p[ind]) * rec(ind + 1, l, cap);
  return dp[ind][l + 200][cap + 200] = rv;
}
int main() {
  while (cin >> N >> L >> K) {
    for (int i = 0; i < N; i++) {
      cin >> p[i];
      p[i] /= 100;
    }
    for (int i = 0; i < N; i++) cin >> a[i];
    memset(dp, -1, sizeof dp);
    printf("%.12lf\n", rec(0, L, K));
  }
}
