AcWing 680. 二分Java解法
原题链接
简单
作者:
zlnnjit
,
2021-01-31 23:07:44
,
所有人可见
,
阅读 394
import java.io.IOException;
import java.util.Scanner;
public class Main {
private static int n;
private static int m;
private static int[] arr;
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
arr = new int[n];
for (int i = 0; i < arr.length; i++) arr[i] = sc.nextInt();
double l = 0, r = 1e9;
while (r - l > 1e-4) {
double mid = (l + r) / 2;
if (check(mid)) {
l = mid;
}else
r = mid;
}
}
System.out.printf("%.2f\n",r);
}
private static boolean check(double mid) {
int cnt = 0;
for (int i : arr) {
cnt += i / mid;
}
return cnt>=m;
}
}