#include <bits/stdc++.h>
using namespace std;
int n, l, k;
double dp[201][201][402];
int p[200];
int main() {
  scanf("%d%d%d", &n, &l, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", &p[i]);
  }
  for (int a = 0; a < (201); a++)
    for (int b = 0; b < (201); b++)
      for (int c = 0; c < (402); c++) dp[a][b][c] = 0.0;
  dp[0][0][200 + k] = 1.0;
  for (int i = 0; i < n; i++) {
    int k;
    scanf("%d", &k);
    for (int j = 0; j < (201); j++)
      for (int l = 0; l < (402); l++)
        if (dp[i][j][l] > 0.0) {
          int diff = max(0, min(l + k, 401));
          dp[i + 1][j + 1][diff] += (double)p[i] * dp[i][j][l] / 100.0;
          dp[i + 1][j][l] += (double)(100 - p[i]) * dp[i][j][l] / 100.0;
        }
  }
  double res = 0;
  for (int i = l; i < 201; i++) {
    for (int j = 200; j < 402; j++) {
      res += dp[n][i][j];
    }
  }
  printf("%.9f\n", (double)res);
  return 0;
}
