#iai21a3. 划分(Partition)
划分(Partition)
划分
题目描述
定义集合的权值为集合中元素最大值与最小值的差的平方。
将 个元素构成的多重集合(可以有重复的元素的集合)划成 个子集,使得各个集合的权值的和最小,求出这个最小值。
输入格式
输入共两行:
第一行:两个整数 和 ,其中 是集合中元素个数, 是划分成的子集的个数。
第二行 个整数,第 个数表示集合中的第 个元素。
输出格式
输出共一行,输出题目所求最小值。
样例输入 #1
5 2
9 2 5 8 3
样例输出 #1
10
样例说明 #1
划分成 与 ,权值之和为 。
数据范围
- 对于 30% 的数据:;
- 对于 60% 的数据:;
- 对于 100% 的数据:,数据保证输入的所有数字的绝对值都不超过 。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 N≤10 / 特殊: 全相同 / 特殊: m=n |
| 2 | 15 | 9~11 | Hack: N=1边界 / Hack: 含负数 / Hack: m=1 |
| 3 | 30 | 12~20 | 中规模 N≈100~5000 / 大规模 N≈5e4 压力 |
| 4 | 25 | 21~25 | 随机 N=1~5e4 回归 |