fork download
  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. #define nl '\n'
  4. #define MOD 1000000000000000007
  5. #define fori(i,n) for(ll i=0;i < n;i++)
  6. using namespace std;
  7. #include <ext/pb_ds/assoc_container.hpp>
  8. #include <ext/pb_ds/tree_policy.hpp>
  9. using namespace __gnu_pbds;
  10. template<typename T>
  11. using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
  12. using namespace __gnu_pbds;
  13. #define ordered_multiset tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
  14.  
  15. /*ll Mod(ll base, ll exp, ll MOD){
  16.   if(exp == 0) return 1;
  17.   ll res = Mod(base,exp/2,MOD);
  18.   if(exp % 2)
  19.   return (((res * res) % MOD)*base) % MOD;
  20.   else
  21.   return (res*res) % MOD;
  22. }
  23.  
  24. ll gcd(ll x,ll y){
  25.   ll b = min(x,y);
  26.   ll a = max(x,y);
  27.   while(b != 0){
  28.   ll temp = b;
  29.   b = a % b;
  30.   a = temp;
  31.   }
  32.   return a;
  33. }
  34.  
  35. ll div(vector<ll> &x){
  36.   for(ll i=1;i <= 100000;i++){
  37.   for(ll j=i;j <= 100000;j+=i){
  38.   x[j++];
  39.   }
  40.   }
  41. }*/
  42.  
  43. int main(){
  44. ios::sync_with_stdio(false);
  45. cin.tie(nullptr);
  46. int t;
  47. cin >> t;
  48. while(t--){
  49. ll n;
  50. double mx=0;
  51. cin >> n;
  52. vector<double> x(n,0);
  53. for(ll i=0;i < n;i++){
  54. cin >> x[i];
  55. }
  56. sort(x.begin(),x.end(),greater<>());
  57. for(ll i=1;i < n;i++){
  58. x[i] = x[i-1]+x[i];
  59. }
  60. for(ll i=0;i < n-1;i++){
  61. mx = max((x[i]/(i+1))
  62. +((x[n-1]-x[i])/(n-i-1)),mx);
  63. }
  64. cout << fixed << setprecision(6) << mx << nl;
  65. }
  66. }
Success #stdin #stdout 0.01s 5288KB
stdin
4
3
3 1 2
3
-7 -6 -6
3
2 2 2
4
17 3 5 -3
stdout
4.500000
0.000000
4.000000
18.666667