诗超绊
题号:NC305752
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}现在加藤翔子给你一个长度为 n 的整数序列 a_1,a_2,\dots,a_n 和一个操作次数上限 m
\hspace{15pt}你需要首先确定一个用于所有操作的非负整数 d,随后定义一次操作如下:
\hspace{23pt}\bullet\,选择一个区间 [l,r]1\le l\le r\le n),将区间内所有元素全部加上整数 d
\hspace{15pt}请帮加藤翔子找到能够使序列变为严格递增(即最终满足对所有 2\le i\le na_i>a_{i-1})且所用操作次数不超过 m最小非负整数 d。特别的,如果不存在使得序列严格递增的 d,直接输出 -1

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 500\right) 代表数据组数,每组测试数据描述如下:

\hspace{15pt}第一行输入两个整数 n,m \left(1\leq n \leq 2\times 10^5;\,0\leq m \leq 10^9\right),表示序列长度、操作次数上限。
\hspace{15pt}第二行输入 n 个整数 a_1,a_2,\dots,a_n \left(0\leq a_i\leq 10^9\right),表示序列中的元素。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。如果不存在满足题意的 d,直接输出 -1;否则,输出一个整数,表示满足条件的最小非负整数 d
示例1

输入

复制
1
5 3
2 2 1 3 2

输出

复制
2
示例2

输入

复制
1
4 0
1 2 2 3

输出

复制
-1

备注: