#include <bits/stdc++.h>
using namespace std;
int n, l, k;
double P[201];
int a[201];
double dp[201][201][401];
bool vis[201][201][401];
double rec(int idx, int t, int s) {
  if (s > 200) s = 200;
  if (idx == n) return (t >= l && s >= 0);
  if (vis[idx][t][s] == 1) return dp[idx][t][s];
  vis[idx][t][s] = 1;
  double ret = rec(idx + 1, t, s) * (1 - P[idx]);
  if (a[idx] == -1)
    ret += rec(idx + 1, t + 1, s - 1) * P[idx];
  else
    ret += rec(idx + 1, t + 1, s + a[idx]) * P[idx];
  return dp[idx][t][s] = ret;
}
int main() {
  while (cin >> n >> l >> k) {
    for (int i = 0; i < n; i++) cin >> P[i], P[i] /= 100.0;
    for (int i = 0; i < n; i++) cin >> a[i];
    memset(vis, 0, sizeof vis);
    cout << setprecision(15) << rec(0, 0, k) << "\n";
  }
}
