#include <bits/stdc++.h>
using namespace std;
int n, l, m, p[205], a[205];
double dp[205][205][205];
int main() {
  scanf("%d%d%d", &n, &l, &m);
  for (int i = 1; i <= n; ++i) scanf("%d", p + i);
  for (int i = 1; i <= n; ++i) scanf("%d", a + i);
  for (int i = 1; i <= n; ++i) {
    int k = i;
    for (int j = i + 1; j <= n; ++j) {
      if (a[j] > a[k]) k = j;
    }
    swap(a[i], a[k]);
    swap(p[i], p[k]);
  }
  dp[0][0][min(m, n)] = 1;
  for (int i = 1; i <= n; ++i) {
    for (int j = 0; j <= i; ++j) {
      for (int k = 0; k <= n - i + 1; ++k) {
        if (k + a[i] >= 0) {
          int x = min(k + a[i], n - i);
          dp[i][j][x] += dp[i - 1][j - 1][k] * p[i] / 100;
        }
        dp[i][j][min(k, n - i)] += dp[i - 1][j][k] * (100 - p[i]) / 100;
      }
    }
  }
  double ans = 0;
  for (int i = l; i <= n; ++i) {
    ans += dp[n][i][0];
  }
  printf("%.10f\n", ans);
}
