#include <bits/stdc++.h>
using namespace std;
void err(istringstream &iss) {}
template <typename T, typename... Args>
void err(istringstream &iss, const T &varVal, const Args &...args) {
  string varName;
  iss >> varName;
  if (varName.back() == ',') varName.back() = ' ';
  cout << varName << " = " << varVal << "; ", err(iss, args...);
}
int n, m, K, T, Q, cn;
int L, a[205];
double p[205], dp[2][205][205 << 1];
int main() {
  cin.tie(NULL);
  scanf("%d%d%d", &n, &L, &K);
  for (int i = 0; i < n; i++) {
    scanf("%lf", &p[i]), p[i] /= 100;
  }
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  for (int i = L; i <= n; i++) {
    for (int j = 0; j <= 200; j++) {
      dp[n & 1][i][j + 201] = 1;
    }
  }
  for (int i = n - 1; i >= 0; i--) {
    for (int j = 0; j <= i; j++) {
      for (int k = -200; k <= 200; k++) {
        dp[i & 1][j][k + 201] =
            p[i] * dp[(i + 1) & 1][j + 1][min(k + a[i], 200) + 201] +
            (1 - p[i]) * dp[(i + 1) & 1][j][k + 201];
      }
    }
  }
  printf("%.8f\n", dp[0][0][K + 201]);
  return 0;
}
