Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
6519 | 19级韩博弈 | 2021北京队选拔模拟赛1-A | C++ | 运行超时 | 10 | 1000 MS | 1816 KB | 764 | 2021-04-03 10:03:52 |
#include<bits/stdc++.h> using namespace std; long long n; double a[200000]; double p,z; double ans; long long l,e; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; }sort(a+1,a+n+1); p=a[1]/2+a[n]/2; z=a[1]/2+a[n]/2; ans=p-z; l=1; e=n; for(int i=2;i<=n/2+1;i++){ double ii=i; if(l>=e) break; p=(p*(ii-1)*2)/((ii-1)*2+1)+a[l+1]/((ii-1)*2+1); z=a[l+1]; if(p-z<ans) break; ans=p-z; l++; double p1=0,p2=0,z1=0,z2=0; p1=p*((ii-1)*2+1)/(ii*2)+a[l+1]/(ii*2); z1=(a[l]+a[l+1])/2; p2=p*((ii-1)*2+1)/(ii*2)+a[e-1]/(ii*2); z2=(a[l]+a[e-1])/2; if((p1-z1)<ans&&(p2-z2)<ans) break; if((p1-z1)>(p2-z2)){ ans=p1-z1; l++; }else{ ans=p2-z2; e--; } }printf("%.4f",ans); return 0; }