#include <bits/stdc++.h>
using namespace std;
int n, l, k;
double p[200];
int a[200];
double dp[2][401][201];
double solve() {
  for (int spaces = -200; spaces <= 200; spaces++) {
    for (int won = 0; won <= 200; won++) {
      dp[n & 1][spaces + 200][won] =
          (((spaces >= 0) && (won >= l)) ? 1.0 : 0.0);
    }
  }
  for (int t = n - 1; t >= 0; t--) {
    int tt = (t & 1);
    int nt = (t + 1) & 1;
    for (int spaces = -200; spaces <= 200; spaces++) {
      for (int won = 0; won <= 200; won++) {
        double& res = dp[tt][spaces + 200][won];
        res = 0;
        double prob = p[t];
        if ((spaces + a[t] >= -200) && (won + 1 <= 200)) {
          res += prob * dp[nt][min(200, spaces + a[t]) + 200][won + 1];
        }
        res += (1 - prob) * dp[nt][spaces + 200][won];
      }
    }
  }
  return dp[0][k + 200][0];
}
inline void init() {}
int main() {
  init();
  bool prev = false;
  while (cin >> n >> l >> k) {
    for (int i = 0; i < n; i++) {
      cin >> p[i];
      p[i] /= 100;
    }
    for (int i = 0; i < n; i++) {
      cin >> a[i];
    }
    if (prev) {
      cout << endl;
    }
    prev = true;
    cout.precision(10);
    cout.setf(ios::fixed, ios::fixed);
    cout << solve() << endl;
  }
  return 0;
}
