#include <bits/stdc++.h>
using namespace std;
const double EPS = (1e-10);
bool EQ(double a, double b) { return abs((a) - (b)) < EPS; }
void fast_stream() { std::ios_base::sync_with_stdio(0); }
double ps[1001];
int as[1001];
int n, l, k;
double dp[2][210][510];
double calc() {
  for (int pos = n; pos >= 0; pos--) {
    int cur = pos % 2;
    int nxt = (pos + 1) % 2;
    for (int wins = 0; wins <= n; wins++) {
      for (int cap = 1; cap <= 500; cap++) {
        double res = 0;
        if (pos == n) {
          if (wins >= l && cap >= 250) res = 1;
        } else {
          if (as[pos] == -1) {
            res += ps[pos] * dp[nxt][wins + 1][cap - 1];
            res += (1 - ps[pos]) * dp[nxt][wins][cap];
          } else {
            res += ps[pos] * dp[nxt][wins + 1][min(500, cap + as[pos])];
            res += (1 - ps[pos]) * dp[nxt][wins][cap];
          }
        }
        dp[cur][wins][cap] = res;
      }
    }
  }
  return dp[0][0][k + 250];
}
void solve() {
  cin >> n >> l >> k;
  for (int i = 0; i < n; i++) {
    cin >> ps[i];
    ps[i] /= 100;
  }
  for (int i = 0; i < n; i++) cin >> as[i];
  double res = calc();
  printf("%.10f\n", res);
}
int main() {
  solve();
  return 0;
}
