在一次数字游戏中,给你一个 n (1≤n≤105) 长度的数组 a ,你可以进行若干次操作,每次操作你可以选择数组中的一个元素减去 1 (该元素必须大于等于 1 ),一次操作的代价为 1。你的目标是使得数组中所有的非 0 元素都相等。
这个游戏有一个特别的规则:如果某次操作产生了数字 0,则这次操作需要额外的代价 k。
你的任务是确定一个策略,使得将数组中所有非 0 元素变为相等的总代价最小。
输入描述
第一行为两个整数 n 、 k ,表示数组的长度和 1 变成 0 的额外代价 k 。
第二行为 n 个整数,表示数组 a 的元素。
输出描述
输出一个整数,表示将数组中所有元素变为相等的最小代价。
样例
5 2
3 2 4 1 3
7
测试点说明
每组数据点 10 分,共 10 组数据。
测试点编号 |
n 的范围 |
k 的范围 |
ai 的范围 |
1−2 |
1≤n≤10 |
k≤10 |
0≤ai≤10 |
3−4 |
1≤n≤1000 |
0≤k≤1000 |
0≤ai≤1000 |
5 |
1≤n≤105 |
0≤k≤1000 |
0≤ai=1000且ai只有两种数字 |
6 |
k=0 |
0≤ai=1000 |
7~8 |
0≤k≤20000 |
k≤ai≤109 |
9~10 |
0≤ai≤109 |