CF442B Andrey and Problem
题目描述
Andrey 还需要一道题目来举办一场程序设计竞赛。他有 $n$ 个总是愿意帮忙的朋友。他可以请求其中的一些人为竞赛出一道题。Andrey 知道每位朋友出题的概率——即如果他请求这位朋友,这位朋友能出一道题的概率。
请帮助 Andrey 选择要请求的朋友集合。由于他只需要一道题,如果没有人出题,或者超过一人出题,Andrey 都会感到失望。你需要选择一个朋友的集合,使 Andrey 不失望的概率最大。
输入格式
第一行包含一个整数 $n$ $(1 \leq n \leq 100)$,表示 Andrey 的朋友数量。
第二行包含 $n$ 个实数 $p_i$ $(0.0 \leq p_{i} \leq 1.0)$,表示第 $i$ 位朋友出题的概率。概率保留最多 6 位小数。
输出格式
输出一个实数,表示在最优选择情况下,Andrey 不会失望的最大概率。答案与正确答案的绝对误差不超过 $10^{-9}$ 均视为正确。
说明/提示
在第一个样例中,Andrey 最好的策略是只请求一位最可靠的朋友。
在第二个样例中,Andrey 最好的策略是请求所有朋友出题。那么恰好有一个朋友出题的概率为 $0.1 \cdot 0.8 + 0.9 \cdot 0.2=0.26$。
由 ChatGPT 5 翻译