# https://yukicoder.me/problems/no/2869 def main(): N, S, writer_id = map(int, input().split()) A = list(map(int, input().split())) writer_score = 100 * S + A[writer_id] def fn(r: int): x = 50 * S + (50 * S) / (0.8 + 0.2 * r) return int(x) array_map = {} for i in range(N): if i == writer_id: continue if fn(1) <= writer_score - A[i]: if 0 not in array_map: array_map[0] = 0 array_map[0] += 1 continue low = 1 high = N while high - low > 1: mid = (high + low) // 2 if fn(mid) > writer_score - A[i]: low = mid else: high = mid if fn(high) > writer_score - A[i]: v = high else: v = low if v not in array_map: array_map[v] = 0 array_map[v] += 1 n = N - 1 b = 0 array = [0] * (N - 1) for i in range(N - 1): if i in array_map: b += array_map[i] array[i] = b / n b -= 1 n -= 1 array.sort(reverse=True) answer = 1.0 for a in array: answer *= a print(answer) if __name__ == "__main__": main()