#include <bits/stdc++.h>
using namespace std;
const int e = 210;
double dp[e][e][e * 3], p[e];
int n, l, k, a[e];
int main() {
  scanf("%d%d%d", &n, &l, &k);
  for (int i = 1; i <= n; i++) scanf("%lf", &p[i]), p[i] /= 100.0;
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  memset(dp, 0, sizeof(dp));
  if (k > 200) k = 200;
  dp[0][0][k + 200] = 1;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j <= i; j++)
      for (k = -200; k <= 200; k++) {
        if (a[i] == -1)
          dp[i][j + 1][k + 200] = dp[i - 1][j][k + 1 + 200] * p[i];
        else {
          int t = min(200, a[i] + k);
          dp[i][j + 1][t + 200] += p[i] * dp[i - 1][j][k + 200];
        }
      }
    for (int j = 0; j <= i; j++)
      for (int k = -200; k <= 200; k++)
        dp[i][j][k + 200] += dp[i - 1][j][k + 200] * (1 - p[i]);
  }
  double ans = 0;
  for (int j = l; j <= n; j++)
    for (k = 0; k <= 200; k++) ans += dp[n][j][k + 200];
  printf("%.12lf\n", ans);
  return 0;
}
