题目
有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2…………tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少?
数据规模和约定
其中80%的数据保证n< =10
输入格式:
第一行n,r (n< =500,r< =75)
第二行为n个人打水所用的时间Ti (Ti< =100);
输出:
最少的花费时间
输入样例:
3 2
1 2 3
输出样例:
7
参考解答:
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int r = scanner.nextInt();
int[] arr = new int [n];
for(int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
Arrays.sort(arr);
int sum = 0;
int[] temp = new int[r];
for(int num = 0; num < n;) {
for(int i = 0; i < r && num < n; i++, num++) {
temp[i] += arr[num];
sum += temp[i];
}
}
System.out.println(sum);
}
}