求助
查看原帖
求助
141335
qwq2519楼主2021/8/13 10:42
#include<bits/stdc++.h>
#define rep(i,j,k) for(register int i(j);i<=k;++i)
#define drp(i,j,k) for(register int i(j);i>=k;--i)
using namespace std;
typedef long long lxl;
template<typename T>
inline T  max(T &a, T &b) {
	return a > b ? a : b;
}
template<typename T>
inline T  min(T &a, T &b) {
	return a < b ? a : b;
}
 
inline char gt() {
	static char buf[1 << 21], *p1 = buf, *p2 = buf;
	return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++;
}
template <typename T>
inline void  read(T &x) {
	register char ch = gt();
	x = 0;
	int w(0);
	while(!(ch >= '0' && ch <= '9'))w |= ch == '-', ch = gt();
	while(ch >= '0' && ch <= '9')x = x * 10 + (ch & 15), ch = gt();
	w ? x = ~(x - 1) : x;
}
template <typename T>
inline void out(T x) {
	if(x < 0) x = -x, putchar('-');
	char ch[20];
	int num(0);
	while(x || !num) ch[++num] = x % 10 + '0', x /= 10;
	while(num) putchar(ch[num--]);
	putchar('\n');
}
const int N = 1e5 + 79;
int n;
int a[N];
lxl sum[N];
double ans;
int main() {
	int T;
	read(T);
	while(T--) {
		read(n);
		sum[0] = 0;
		rep(i, 1, n) {
			read(a[i]);
			sum[i] = sum[i - 1] + a[i];
		}
		sort(a + 1, a + n + 1);
		ans=-1e44;
		for(register int i(1);i<n;++i)
		{
        	double t=(double)(1.0*sum[i])/(1.0*i);
        	double tt=(double)(1.0*sum[n]-sum[i])/(1.0*n-i);
        	ans=max(ans,t+tt);
		}
		printf("%0.9lf\n",ans);
	}
	return 0;
}
2021/8/13 10:42
加载中...