| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 42108 | 黄子睿 | 【S】T2 | C++ | 通过 | 100 | 176 MS | 4164 KB | 585 | 2026-06-13 14:16:00 |
#include<bits/stdc++.h> using namespace std; const int N=5e5+10; int n; double a[N]; double Max; double ans1,ans2=1; int main(){ scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%lf",&a[i]); Max=max(a[i],Max); } if(Max>=0.5){ printf("%.14lf",Max); // }else{ sort(a+1,a+n+1,greater<double>() ); Max=0; for(int i=1;i<=n;i++){ ans1=(ans1*(1-a[i]))+(ans2*a[i]); Max=max(Max,ans1); ans2=ans2*(1-a[i]); } printf("%.14lf",Max); } return 0; }