题目描述
传送门
题意:有n个人,第n个人帮助A的概率为pi,问有且只有一个人帮助A的概率
题解
貌似这题怎么乱搞都是对的
官方题解http://codeforces.com/blog/entry/12739
代码
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int n;
double ans,mul,p[105];
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;++i) scanf("%lf",&p[i]);
sort(p+1,p+n+1);
ans=p[n];mul=1.0-p[n];
for (int i=n-1;i>=1;--i)
{
double now=ans*(1-p[i])+p[i]*mul;
if (now<ans) break;
mul*=1.0-p[i];ans=max(ans,now);
}
printf("%.9lf\n",ans);
}