编程题
### 问题描述 在一个大型公司中,每名员工都被分配了一个独特的等级。这个公司要求每个团队的成员等级都不相同,并且尽可能地满足一个条件:团队成员之间的等级差异越大越好。为了计算这种差异,公司使用了一个公式:$score = \sum_{i=1}^{n-1} |rank[i] - rank[i+1]|$,其中 $rank[i]$ 是团队中第 $i$ 个成员的等级。 给定公司中员工的等级列表,你的任务是重新排列这个列表以最大化整个公司的 $score$。但是团队的大小固定为 $k$,这也导致可能有一部分人不能被包含在任何团队当中。 ### 输入格式 输入的第一行包含两个整数:$n$ 和 $k$,表示公司的员工总数和每个团队的大小。 接下来的一行包含 $n$ 个整数,表示每个员工的等级。 ### 输出格式 输出一个整数,表示通过重新排列员工等级后,可以获得的最大的 $score$。 ### 样例输入 ``` 7 3 1 3 5 2 4 6 7 ``` ### 样例输出 ``` 16 ``` ### 样例说明 一个最佳的团队组合为 $[1,7,2]$ 和 $[3,6,4]$,他们的 $score$ 分别为 $11$ 和 $5$,总分为 $16$。 ### 测评数据规模 对于 $40$% 的数据,$1 \leq n \leq 10$。 对于 $80$% 的数据,$1 \leq n \leq 100$。 对于 $100$% 的数据,$1 \leq n \leq 10^5$,$1 \leq k \leq 10^4$。
查看答案
赣ICP备20007335号-2