| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 42116 | 氩_wjy | 【S】T2 | C++ | 解答错误 | 0 | 293 MS | 15908 KB | 1057 | 2026-06-13 14:46:21 |
#include<bits/stdc++.h> #define int long long #define ull unsigned long long #define i128 __int128_t #define doub long double #define PII pair<int,int> #define fir first #define sec second #define lb(x) ((x)&(-(x))) #define ctz __builtin_ctzll #define clz __builtin_clzll #define PC __builtin_popcountll #define lc(p) ((p)<<1) #define rc(p) ((p)<<1|1) #define FL() fflush(stdout) // #define endl '\n' using namespace std; const int N=5e5+7,mod=998244353; int n; doub p[N],a[N]; signed main(){ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #ifndef ONLINE_JUDGE freopen("1.in","r",stdin); freopen("1.out","w",stdout); #endif cin>>n; for(int i=1;i<=n;i++)cin>>p[i]; for(int i=1;i<=n;i++){ if(p[i]==1){ cout<<1<<endl; return 0; }a[i]=p[i]/(1-p[i]); } sort(p+1,p+n+1,greater<doub>()); doub S=0,P=1; doub Ans=0; for(int i=1;i<=n;i++){ S+=a[i];P*=(1+a[i]); Ans=max(Ans,S/P); } cout<<Ans<<endl; return 0; }