#include <bits/stdc++.h>
using namespace std;
double dp[2][205][205 + 300];
int n, l, w, p[205], a[205];
int main() {
  scanf("%d%d%d", &n, &l, &w);
  for (int i = 0; i < n; ++i) scanf("%d", &p[i]);
  for (int i = 0; i < n; ++i) scanf("%d", &a[i]);
  memset(dp, 0, sizeof(dp));
  dp[1][0][min(w, n) + 256] = 1;
  for (int i = 0; i < n; ++i) {
    int nowsta = i % 2;
    int presta = (i + 1) % 2;
    memset(dp[nowsta], 0, sizeof(dp[nowsta]));
    for (int j = 0; j <= i; ++j)
      for (int k = -i; k <= n; ++k) {
        if (a[i] != -1)
          dp[nowsta][j + 1][256 + min(k + a[i], n)] +=
              dp[presta][j][k + 256] * (p[i] * 1.0 / 100);
        else
          dp[nowsta][j + 1][256 + k - 1] +=
              dp[presta][j][256 + k] * (p[i] * 1.0 / 100);
        dp[nowsta][j][256 + k] +=
            dp[presta][j][256 + k] * (1 - p[i] * 1.0 / 100);
      }
  }
  double ans = 0;
  for (int i = l; i <= n; ++i)
    for (int j = 0; j <= n; ++j) ans += dp[(n + 1) % 2][i][j + 256];
  printf("%.10lf\n", ans);
}
