#include <bits/stdc++.h>
using namespace std;
const int MAXN = 202;
int N, L;
int A[MAXN];
double P[MAXN];
double memo[MAXN][MAXN][2 * MAXN];
bool visited[MAXN][MAXN][2 * MAXN];
double dp(int idx, int won, int cap) {
  if (idx == N) {
    return won >= L && cap >= 200;
  }
  double &res = memo[idx][won][cap];
  if (visited[idx][won][cap]) {
    return res;
  }
  visited[idx][won][cap] = 1;
  res = 0;
  res += P[idx] * dp(idx + 1, won + 1, min(cap + A[idx], 400));
  res += (1 - P[idx]) * dp(idx + 1, won, cap);
  return res;
}
int main() {
  int p, k;
  scanf("%d %d %d", &N, &L, &k);
  for (int i = 0; i < N; i++) {
    scanf("%d", &p);
    P[i] = p / 100.0;
  }
  for (int i = 0; i < N; i++) {
    scanf("%d", &A[i]);
  }
  printf("%.12f\n", dp(0, 0, k + 200));
}
