n根绳子,分别记其长度。现要从这些绳子中截出等长的m段,求这些绳子长度的最大值。
比如有3根绳子长分别为 3,5, 4.现在要截成4段,则最长为2.50(结果保留小数点后两位)
测试用例:
输入:
3 4 (3代表绳子数、4代表截取数)
3 5 4 (绳子长度)
输出:
2.50
package spring;
import java.util.*;
public class Main5 {
public static void main (String[] args){
Scanner sc = new Scanner(System.in);
//准备工作
int n = sc.nextInt();
int m = sc.nextInt();
double[] arr = new double[n];
for(int i=0; i<n; i++)
arr[i] = sc.nextDouble();
//从小到大排序
Arrays.sort(arr);
//夹逼锁值,求出上界,再寻值
int poi = 0;//只需要找到有边界
for (int i=0; i < arr.length; i++){
int total = 1;
for(int j=i+1; j < arr.length; j++){
total += arr[j]/arr[i];
if(total >= m)
break;
}
if(total < m) {
poi = i;
break;
}
}
//开始寻值(这里可以确定上下