#include <bits/stdc++.h>
using namespace std;
const long long int N = 2e2 + 5;
long double dp[N][N][2 * N];
long double p[N];
long long int bag[N];
long long int n, m, k;
long double solve(long long int pos, long long int win, long long int cap) {
  if (pos == -1) {
    if (win == 0 && cap >= 0)
      return 1.00;
    else
      return 0.00;
  }
  if (dp[pos][win][cap + 200] != -1.00) return dp[pos][win][cap + 200];
  long double ans =
      p[pos] * solve(pos - 1, max(0LL, win - 1), min(200LL, cap + bag[pos])) +
      (1.00 - p[pos]) * solve(pos - 1, win, cap);
  return dp[pos][win][cap + 200] = ans;
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  srand(time(NULL));
  cin >> n >> m >> k;
  for (long long int i = 0; i < n; i++) {
    cin >> p[i];
    p[i] /= 100.00;
  }
  for (long long int i = 0; i < n; i++) {
    cin >> bag[i];
  }
  for (long long int i = 0; i < N; i++)
    for (long long int j = 0; j < N; j++)
      for (long long int k = 0; k < 2 * N; k++) dp[i][j][k] = -1;
  long double ans = solve(n - 1, m, k);
  cout << fixed << setprecision(12) << ans;
}
