开始: 2026-04-27 00:00:00

25-26赛季联合赛08

结束: 2026-04-29 12:40:00
当前  2026-05-06 20:01:02  类型: IOI  状态: 已经结束 

P2. 花园浇水Ⅱ
描述

现在是冬天,Max 决定要给花园浇水。

这个花园可以看作是 n 个连续的花坛,编号从 1n。有 k 个花坛里安装了水龙头(第 i 个水龙头在第 x_{i} 个花坛),如果龙头打开,就会向相邻的花坛输送水。如果第 x_{i} 个花坛上的水龙头被打开,则在经过 1 秒后,第 x_{i} 个花坛会被浇水;经过 2 秒后,区间 [x_{i}-1,x_{i}+1] 上的花坛都会被浇水(如果这些位置存在);经过 j 秒后(j 是整数),区间 [x_{i}-(j-1),x_{i}+(j-1)] 上的花坛都会被浇水(如果这些位置存在)。在每一秒的过程中没有变化,因此比如我们不能说在 2.5 秒后区间 [x_{i}-2.5,x_{i}+2.5] 会被浇水;只有在 2 秒正好过去时,区间 [x_{i}-2, x_{i}+2] 才刚好被浇水。

Max 想要在同一时刻打开所有水龙头,他想知道,从打开龙头开始,至少需要多少秒,才能让整个花园都被浇到水。请帮他计算出答案!


输入

第一行包含一个整数 t,表示测试用例的数量(1\leq t\leq 200)。

接下来 t 组测试用例。每组测试用例的第一行包含两个整数 nk1\leq n\leq 10^91\leq k\leq min(n,1000)),分别表示花坛总数和水龙头的数量。

下一行包含 k 个整数 x_{i}1\leq x_{i}\leq n),表示第 i 个水龙头所在的花坛位置。保证对于每个 ix_{i-1}




输出

对于每组测试用例,输出一个整数,表示 Max 打开水龙头后,最少需要多少秒,才能让整个花园被浇到水。

样例

输入

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

输出

3
1
4
提示

第一个样例有三个测试用例:

1. 有 5 个花坛,第 3 个花坛有一个水龙头。如果我们打开它,1 秒后只有第 3 个花坛被浇水;2 秒后区间 [1,3] 的花坛被浇水,3 秒后所有花坛都被浇水。

2. 有 3 个花坛,每个花坛上都有一个水龙头。如果同时打开所有水龙头,则 1 秒后所有花坛都被浇水。

3. 有 4 个花坛,只有第 1 个花坛有一个水龙头。要让第 4 个花坛被浇水,需要 4 秒。


30%的数据:t \leq 10,n\leq 20;

60%的数据:t \leq 200,n\leq 2000;

100%的数据:t \leq 200,n\leq 10^9,k\leq 2000;


提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交