#include <bits/stdc++.h>
using namespace std;
const int N = 220;
int n, m;
pair<int, double> a[N];
double Dp[N][N][N];
double Rec(int i, int j, int k) {
  k = min(k, n);
  if (k < 0) return 0.0;
  if (i == n) return j >= m;
  if (Dp[i][j][k] == Dp[i][j][k]) return Dp[i][j][k];
  return Dp[i][j][k] = a[i].second * Rec(i + 1, j + 1, k + a[i].first) +
                       (1.0 - a[i].second) * Rec(i + 1, j, k);
}
int main() {
  memset(Dp, -1, sizeof(Dp));
  int k;
  cin >> n >> m >> k;
  for (int i = 0; i < n; i++) cin >> a[i].second, a[i].second /= 100.0;
  for (int i = 0; i < n; i++) cin >> a[i].first;
  sort(a, a + n);
  reverse(a, a + n);
  printf("%.9f", Rec(0, 0, k));
}
