Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
6511 | 18级蔡越同 | 2021北京队选拔模拟赛1-A | C++ | 运行超时 | 30 | 1000 MS | 18996 KB | 780 | 2021-04-03 08:59:39 |
#include <bits/stdc++.h> #define int long long using namespace std; int n,a[200005],chose[200005],cnt; double ans; void dfs(int id,double sum,double av,int num,int avid){ if(id==n+1){ ans=max(ans,sum/(double)num-av); return ; } if(num%2==0){ chose[++cnt]=a[id]; dfs(id+1,sum+a[id],(double)chose[avid+1],num+1,avid+1); cnt--; dfs(id+1,sum,av,num,avid); } else{ chose[++cnt]=a[id]; dfs(id+1,sum+a[id],(chose[avid]+chose[avid+1])/2.0,num+1,avid); cnt--; dfs(id+1,sum,av,num,avid); } } signed main(){ scanf("%lld",&n); for(int i=1;i<=n;i++) scanf("%lld",&a[i]); sort(a+1,a+1+n); dfs(1,0,0,0,0); printf("%.4f",ans); return 0; }