#B0205. 毒刃斩龙

毒刃斩龙

题目描述

Aki 将在一场很长的战斗中按时刻发动共 n 次攻击。第 i 次攻击发生在时刻 ai 的开始,且满足 a1<a2<…<an

每次攻击本身不直接造成伤害,而是会让目标进入持续 k 秒的中毒状态:从该次攻击发生的这一秒开始,接下来的 k 秒中每秒造成 1 点伤害。

如果目标在中毒尚未结束时又被攻击,那么旧中毒会立刻被新中毒覆盖,新的持续时间重新开始计算。

已知目标生命值为 h。你需要求出最小的正整数 k,使得整场战斗中总伤害至少为 h。

输入格式

第一行一个整数 t 表示测试组数,满足 1≤ t≤ 1000。

每组测试数据包含两行。

第一行两个整数 n,h,满足 1≤ n≤ 100,1≤ h≤ 1018

第二行 n 个整数 a1,a2,…,an,满足 1≤ ai≤ 109,且严格递增。

输出格式

对于每组测试数据,输出一个整数,表示满足要求的最小 k。

4
2 5
1 5
3 10
2 4 10
5 3
1 2 4 5 7
4 1000
3 25 64 1337
3
4
1
470

Hint

样例解释:

  • 第 1 组中,当 k=3 时:

    • 时刻 1 的攻击贡献时段 [1,3];
    • 时刻 5 的攻击贡献时段 [5,7]。

    总伤害为 3+3=6,已经不少于 5。而 k=2 时总伤害仅为 4,所以答案是 3。

  • 第 2 组中,当 k=4 时,三次攻击分别覆盖:

    • [2,5]
    • [4,7](覆盖前一次剩余部分)
    • [10,13]

    实际总伤害为

min(4,4-2)+min(4,10-4)+4=2+4+4=10,

恰好达到 h=10。

  • 第 3 组中,h=3,只要 k=1 即可,每次攻击都会立刻造成 1 点伤害,总伤害至少为 3。