AcWing 680. 剪绳子--Java
原题链接
简单
作者:
Jiang锋时刻
,
2021-01-31 13:07:16
,
所有人可见
,
阅读 369
C++ 代码
import java.util.*;
import java.io.*;
public class Main {
static int m;
static int n;
static int[] res;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
m = sc.nextInt();
n = sc.nextInt();
res = new int[m];
for(int i = 0; i < m; i++) {
res[i] = sc.nextInt();
}
double left = 0;
double right = 1000000000;
while (right - left > 0.001) {
double mid = left + (right - left) / 2;
if(check(mid)){
left = mid;
} else {
right = mid;
}
}
System.out.printf("%.2f", left);
}
public static boolean check(double len) {
int ans = 0;
for(int i = 0; i < m; i++) {
ans += res[i] / len;
}
if(ans >= n) {
return true;
}
return false;
}
}