#P1227. 排队打水问题

排队打水问题

【题目描述】

有n个人排队到r个水龙头去打水,他们装满水桶的时间t₁, t₂, ..., tₙ为整数且各不相等。每个人打水的时间等于排队的时间加上实际打水的时间,切换过程不消耗时间。求安排他们的打水顺序,使得所有人花费的总时间最少。

总时间定义为每个人的打水时间(排队时间+打水时间)的总和。

【输入格式】

第1行,两个整数n和r(1≤n≤500,1≤r≤100),分别表示人数和水龙头数量。
第2行,n个正整数t₁, t₂, ..., tₙ(1≤tᵢ≤1000),表示每个人装满水桶的时间。

【输出格式】

1行,一个正整数,表示最少的总时间。

【样例输入】

4 2
2 6 4 5

【样例输出】

23

【样例解释】

安排方式如下:

  • 水龙头1:先安排时间为2的人,再安排时间为5的人。

    • 第一个人:打水时间2(无排队时间),贡献2。
    • 第二个人:排队时间2,打水时间5,总时间2+5=7,贡献7。
    • 水龙头1总贡献:2+7=9。
  • 水龙头2:先安排时间为4的人,再安排时间为6的人。

    • 第一个人:打水时间4(无排队时间),贡献4。
    • 第二个人:排队时间4,打水时间6,总时间4+6=10,贡献10。
    • 水龙头2总贡献:4+10=14。

所有人的总时间为两个水龙头的贡献之和:9+14=23。