#include <bits/stdc++.h>   using namespace std;   int p[201], bag[201];   int n, l, k;   double mem[202][202][202];   double solve(int r, int bagwon, int prizewon) {     if (mem[r][bagwon][prizewon] >= -.5) return mem[r][bagwon][prizewon];     if (r == n)       return mem[r][bagwon][prizewon] =                  bagwon + k >= prizewon && prizewon >= l ? 1 : 0;     if (bag[r] == -1)       return mem[r][bagwon][prizewon] =                  double(p[r] * solve(r + 1, bagwon, prizewon + 1) +                         (100 - p[r]) * solve(r + 1, bagwon, prizewon)) /                  100;     else       return mem[r][bagwon][prizewon] =                  double(p[r] * solve(r + 1, min(200, bagwon + bag[r] + 1),                                      prizewon + 1) +                         (100 - p[r]) * solve(r + 1, bagwon, prizewon)) /                  100;   }   int main() {     memset(mem, -1, sizeof mem);     cin >> n >> l >> k;     for (int i = 0; i < n; i++) cin >> p[i];     for (int i = 0; i < n; i++) cin >> bag[i];     cout.precision(100);     cout << fixed << solve(0, 0, 0) << endl;     return 0;   }   