59 lines
1.1 KiB
Java
59 lines
1.1 KiB
Java
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);
|
|
}
|
|
}
|