#include #include #include #define MAX_N 100000 double solve(const int V[], int N, int K) { if (K == 1) { return V[N-1]; } double weight[MAX_N]; double totalWeight = 0; for (int i = 0; i < N; i++) { weight[i] = pow(V[i], -1./(K-1)); totalWeight += weight[i]; } int zeros = 0; double res = 0; for (int i = 0; i < N; i++) { double q = (N-1-zeros)*weight[i]/(totalWeight); if (q > 1) { zeros++; totalWeight -= weight[i]; } else { res += V[i] * (1-pow(q, K)); } } return res / K; } int main() { int T; scanf("%d", &T); for (int tt = 0; tt < T; tt++) { int N, K; scanf("%d%d", &N, &K); int V[MAX_N]; for (int i = 0; i < N; i++) scanf("%d", V+i); std::sort(V, V+N); double res = solve(V, N, K); printf("%.12f\n", res); } }