package chelper; import io.InputReader; import io.OutputWriter; import misc.GCJSolution; import misc.SimpleSavingChelperSolution; public class TaskC extends GCJSolution { public void solve(int testNumber, InputReader in, OutputWriter out) { wrapSolve(testNumber, in, out); } double eps = 1e-9; @Override public void solve(int testNumber) { int n = in.nextInt(); int k = in.nextInt(); double u = in.nextDouble(); double[] a = in.nextDoubleArray(n); double min = 1.0; for (double v : a) { min = Math.min(v, min); } double l = 0.0; double r = 1.1; double goodAns = 0.0; while (r - l > eps) { double m = (r + l) / 2; double ma = Math.min(m, 1.0); double uLeft = u; double ans = 1; for (double v : a) { double uNeed = Math.max(0, ma - v); uLeft -= uNeed; // ans *= ma; ans *= Math.max(ma, v); } if (uLeft >= 0) { l = m; goodAns = Math.max(goodAns, ans); } else { r = m; } } out.println(goodAns); } }