#include <bits/stdc++.h>
using namespace std;
bool D[211][211][411];
double P[211][211][211], p[211];
int n, K, l, maxk, chance[211], M[211];
double solve(int idx, int towin, int cap) {
  if (D[idx][towin][cap]) return P[idx][towin][cap];
  D[idx][towin][cap] = 1;
  if (idx == 0) {
    return P[idx][towin][cap] = (towin == 0 && cap >= 200) ? 1.0 : 0.0;
  }
  P[idx][towin][cap] = 0.0;
  if (M[idx] > 0 || cap > 0) {
    P[idx][towin][cap] +=
        solve(idx - 1, max(towin - 1, 0), min(cap + M[idx], 200 + n)) * p[idx];
  }
  P[idx][towin][cap] += (1 - p[idx]) * solve(idx - 1, towin, cap);
  return P[idx][towin][cap];
}
int main() {
  scanf("%d%d%d", &n, &l, &K);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &chance[i]);
    p[i] = (chance[i] / 100.0);
  }
  for (int i = 1; i <= n; i++) scanf("%d", &M[i]);
  printf("%.12lf\n", solve(n, l, 200 + K));
  return 0;
}
