#include <bits/stdc++.h>
using namespace std;
const int kBagMax = 210;
double dp[220][440][220];
double win_prob[220];
int bag_cap[220];
int main() {
  int N, L, K;
  while (cin >> N >> L >> K) {
    for (int i = 0; i < (int)(N); ++i) {
      cin >> win_prob[i];
      win_prob[i] /= 100.0;
    }
    for (int i = 0; i < (int)(N); ++i) cin >> bag_cap[i];
    memset((dp), (0.0), sizeof(dp));
    dp[0][kBagMax + K][0] = 1.0;
    for (int i = 0; i < (int)(N); ++i)
      for (int diff = (-kBagMax); diff <= (int)(kBagMax); ++diff)
        for (int win = (0); win <= (int)(kBagMax); ++win) {
          double curr_prob = dp[i][kBagMax + diff][win];
          int ndiff = diff;
          if (bag_cap[i] >= 0) {
            ndiff += bag_cap[i];
          } else {
            ndiff--;
          }
          ndiff = min(ndiff, kBagMax);
          dp[i + 1][kBagMax + ndiff][win + 1] += win_prob[i] * curr_prob;
          dp[i + 1][kBagMax + diff][win] += (1.0 - win_prob[i]) * curr_prob;
        }
    double res = 0.0;
    for (int diff = (0); diff <= (int)(kBagMax); ++diff)
      for (int win = (L); win <= (int)(kBagMax); ++win)
        res += dp[N][kBagMax + diff][win];
    printf("%.13f\n", res);
  }
}
