#include <bits/stdc++.h>
using namespace std;
long double dp[205][205][405];
inline int id(int x) { return (x < 0) ? (200 - x) : x; }
int main() {
  int n, l, init, cnt = 0, bags[201];
  cin >> n >> l >> init;
  long double p[n + 1];
  for (int j = 0; j < n; j++) {
    cin >> p[j];
    p[j] /= 100;
  }
  for (int j = 0; j < n; j++) cin >> bags[j];
  memset(dp, 0, sizeof(dp));
  dp[0][0][init] = 1;
  for (int i = 0; i < n; i++) {
    for (int k = -200; k < 201; k++) {
      for (int j = 0; j <= i; j++) {
        dp[i + 1][j][id(k)] += dp[i][j][id(k)] * ((long double)1 - p[i]);
        if (bags[i] == -1)
          dp[i + 1][j + 1][id(k - 1)] += p[i] * dp[i][j][id(k)];
        else
          dp[i + 1][j + 1][id((k + bags[i]) > 200 ? 200 : (k + bags[i]))] +=
              dp[i][j][id(k)] * p[i];
      }
    }
  }
  long double ans = 0;
  cnt = 0;
  for (int j = l; j < 201; j++)
    for (int k = 0; k < 201; k++) {
      ans += dp[n][j][k];
    }
  cout << fixed << setprecision(9) << ans << endl;
  return 0;
}
