#include <bits/stdc++.h>
using namespace std;
int p[200], a[200];
double dp[201][201][500];
int n, l, k;
double com(int a1, int a2, int a3) {
  if (a1 >= n) {
    if (a2 != 0) return 0;
    if (a3 < 200) return 0;
    return 1;
  }
  if (dp[a1][a2][a3] != -1) return dp[a1][a2][a3];
  dp[a1][a2][a3] = ((double)p[a1] / 100) *
                       com(a1 + 1, max(0, a2 - 1), min(a3 + a[a1], 400)) +
                   ((double)(100 - p[a1]) / 100) * com(a1 + 1, a2, a3);
  return dp[a1][a2][a3];
}
int main() {
  cin >> n >> l >> k;
  for (int i = 0; i < n; ++i) {
    cin >> p[i];
  }
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j <= l; j++) {
      for (int z = 0; z < 500; z++) {
        dp[i][j][z] = -1;
      }
    }
  }
  cout << fixed << setprecision(12) << com(0, l, 200 + k) << endl;
}
