package main
import (
"fmt"
"sort"
)
type Tour struct {
p float64
a int
}
func main() {
var n, l, k int
if _, err := fmt.Scan(&n, &l, &k); err != nil {
return
}
tours := make([]Tour, n)
for i := 0; i < n; i++ {
var p int
fmt.Scan(&p)
tours[i].p = float64(p) / 100.0
}
for i := 0; i < n; i++ {
fmt.Scan(&tours[i].a)
}
sort.Slice(tours, func(i, j int) bool {
return tours[i].a > tours[j].a
})
if k > n {
k = n
}
dp := make([][]float64, n+1)
for i := range dp {
dp[i] = make([]float64, n+1)
}
dp[0][k] = 1.0
for _, t := range tours {
nextDp := make([][]float64, n+1)
for i := range nextDp {
nextDp[i] = make([]float64, n+1)
}
for w := 0; w <= n; w++ {
for c := 0; c <= n; c++ {
if dp[w][c] == 0 {
continue
}
nextDp[w][c] += dp[w][c] * (1.0 - t.p)
newC := c + t.a
if newC > n {
newC = n
}
if newC >= 0 && w+1 <= n {
nextDp[w+1][newC] += dp[w][c] * t.p
}
}
}
dp = nextDp
}
var ans float64
for w := l; w <= n; w++ {
for c := 0; c <= n; c++ {
ans += dp[w][c]
}
}
fmt.Printf("%.12f\n", ans)
}