公司组织团建活动,到某漂流圣地漂流,现有如下情况:
员工各自体重不一,第 i 个人的体重为 people[i],每艘漂流船可以承载的最大重量为 limit。
每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。
为节省开支,麻烦帮忙计算出载到每一个人所需的最小船只数(保证每个人都能被船载)。
AC代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] string1 = scanner.nextLine().split(" ");
int limit = Integer.parseInt(scanner.nextLine());
int[] num = new int[string1.length];
for(int i = 0; i < num.length;i++) {
num[i] = Integer.parseInt(string1[i]);
}
Arrays.sort(num);
int left = 0;
int right = num.length - 1;
int number = 0;
while(left < right) {
if(num[left] + num[right] <= limit) {
left++;
right--;
number++;
}else {
right--;
}
}
int yu = num.length - number * 2;
System.out.println(yu + number);
}
}