https://codeforces.com/contest/1557/problem/B
#include<bits/stdc++.h>
using namespace std;
const int N = 2e6 + 10;
int a[N];
int n, m;
void solve() {
cin >> n;
double sum = 0;
for (int i = 1; i <= n; i ++) {
cin >> a[i];
sum += a[i];
}
sort (a + 1, a + 1 + n);
printf("%.9lf\n", (sum - a[n]) / (n - 1) + a[n]);
}
int main () {
int t;
cin >> t;
while (t --) solve();
return 0;
}
通过添加最大数和减少最大数来证明策略是正确的