CF920A.Water The Garden

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Water The Garden

题目描述

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

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

测试样例 11 的花园。白色代表没有水龙头的花坛,红色代表有水龙头的花坛。
打开水龙头后经过 22 秒的花园。白色代表未被浇水的花坛,蓝色代表已被浇水的花坛。

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

输入格式

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

接下来 tt 组测试用例。每组测试用例的第一行包含两个整数 nnkk1n2001\leq n\leq 2001kn1\leq k\leq n),分别表示花坛总数和水龙头的数量。

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

保证所有测试用例中 nn 的总和不超过 200200

注意,在 hack 时需要设置 t=1t=1

输出格式

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

说明/提示

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

  1. 55 个花坛,第 33 个花坛有一个水龙头。如果我们打开它,11 秒后只有第 33 个花坛被浇水;22 秒后区间 [1,3][1,3] 的花坛被浇水,33 秒后所有花坛都被浇水。
  2. 33 个花坛,每个花坛上都有一个水龙头。如果同时打开所有水龙头,则 11 秒后所有花坛都被浇水。
  3. 44 个花坛,只有第 11 个花坛有一个水龙头。要让第 44 个花坛被浇水,需要 44 秒。

由 ChatGPT 5 翻译

样例

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

在线编程 IDE

建议全屏模式获得最佳体验