#include <bits/stdc++.h>
using namespace std;
long long n, m, p;
long double dp[210][210][210];
vector<long double> win(210);
vector<long long> cap(210);
int main() {
  cin >> n >> m >> p;
  long long i, j, k;
  for (i = 1; i <= n; i++) {
    cin >> win[i];
  }
  for (i = 1; i <= n; i++) {
    cin >> cap[i];
    cap[i]++;
  }
  dp[0][0][p] = 1;
  for (i = 0; i <= n - 1; i++) {
    for (j = 0; j <= i; j++) {
      for (k = 0; k <= 201; k++) {
        long double prob = dp[i][j][k];
        long long Next = k + cap[i + 1];
        Next = min(Next, 201LL);
        dp[i + 1][j + 1][Next] += prob * (win[i + 1]) / 100;
        dp[i + 1][j][k] += prob * (100 - win[i + 1]) / 100;
      }
    }
  }
  long double ans = 0;
  for (j = m; j <= 201; j++) {
    for (k = j; k <= 201; k++) ans += dp[n][j][k];
  }
  cout << fixed << setprecision(10);
  cout << ans;
  return 0;
}
