#1903. 变换高度

变换高度

题目描述

QQ 是一个牛逼的少年,他最近无聊的在纸上画了 nn 个塔。第 ii 个塔的高度是 hih_i。他会对塔进行一种操作,操作定义为在某个高度 HH 的时候,如果第 ii 个塔的高度高于 HH,我们必须把这个塔的高度变成 HH。这样一次操作的代价是从所有塔里面移除的 1×11×1 方块的总和。如果一次操作的代价小于等于 kk,那么我们就称这个操作为友好操作(knk≥n)。

现在请你计算最少需要多少次友好操作,才能使得所有的塔的高度都变成相同。显然,这个肯定有答案.下面图可以参考(样例1 ) :

输入格式

输入第一行是两个整数 nnkk, 表示塔的数量和操作相关的系数 kk

第二行有 nn 个空格隔开的整数 h1,h2,...,hnh_1,h_2,...,h_n

输出格式

输出只有一个整数,表示最少需要的友好操作的数量,使得每个塔的高度都相同。

5 5
3 1 2 2 4
2
4 5
2 3 4 5
2

样例 11 解释

样例 11 如图所示,需要 22 个友好操作,第一次设定 HH22,代价为 33,第二次设定 HH11,代价为 44

数据范围

对于 50%50\% 的数据,1n20001≤n≤2000hi2000h_i≤2000

对于 100%100\% 的数据,1n2×1051≤n≤2×10^5nk109n≤k≤10^9hi2×105h_i≤2×10^5