#P1040. 基于小塔的改造问题

基于小塔的改造问题

题目描述

低调而又正直的咕噜姐少男(简称:DD 而又 ZZ 的咕噜姐少男)放暑假没事闲着在家堆积木。现在他已经用 nn1n10001 \leq n \leq 1\,000)个积木砌成了一些小塔。每个小塔都是使用 1×1×11 \times 1 \times 1 的单位立方体竖直堆砌而成。现在 DD 而又 ZZ 的咕噜姐少男同学有一个新的想法,他可以从任何一个或多个塔中去除至多 mm0m1000000 \leq m \leq 100\,000)个立方体,使得所有小塔当中,最高的小塔和最矮的小塔高度差最小。

输入格式

第一行一个整数 TT,表示有 TT 组测试数据。对于每组数据:第一行 2 个正整数 nnmm1n10001 \leq n \leq 1\,0000m1000000 \leq m \leq 100\,000)。
接下来一行有 nn 个以空格隔开的正整数:h1h_1h2h_2,……,hnh_n1hi1001 \leq h_i \leq 100),表示每一个小塔对应的高度。

输出格式

对于每一组数据,输出一个正整数表示最后得到的最少的高度差。

样例输入

2
4 0
1 2 2 5
4 1
1 2 2 5

样例输出

4
3

提示

  1. 可以去除 00 个或多个单位立方体,但是不能超过 mm 个;
  2. 一旦某个小塔高度变成 00,那么它将不参与高度差计算当中。