#include #include const int MAX_INT = 1000000000; const double EPS = 1e-9; int min(int L[], int N) { int min_val = MAX_INT; for (int i=0; i L[i]) min_val = L[i]; } return min_val; } int sum(int L[], int N) { int sum_val = 0; for (int i=0; i= K; } double find(double a, double b, int L[], int N, int K) { if (b - a < EPS) { return a; } else { double c = (a + b) / 2; if (retrievable(c, L, N, K)) { return find(c, b, L, N, K); } else { return find(a, c, L, N, K); } } } int main() { int N; std::cin >> N; int L[N]; for (int i=0; i> L[i]; int K; std::cin >> K; double a = (double)min(L, N) / (double)K; double b = (double)sum(L, N) / (K-0.5); std::cout << std::fixed; std::cout << std::setprecision(9) << find(a, b, L, N, K) << std::endl; }