#1073. 愤怒的仲夏和爱吃辣的小玖

愤怒的仲夏和爱吃辣的小玖

题目背景

前几天小玖学长因为发烧忌口了好几天,今天终于康复了,于是小玖打算来一道辣子鸡好好犒劳自己。但是仲夏就是受不了太辣,所以他决定毁了小玖的大餐。

题目描述

仲夏把小玖准备放入辣子鸡中的 n 个辣椒打乱分成了 k 堆,每堆分别有 a1,a2,a3,......,ak a_1,a_2,a_3,......,a_k 个辣椒。小玖不喜欢这样,幸运的是,一切都可以补救。为此,小玖可以执行以下操作之一:

  • 选取数量为 ai2 a_i \ge 2 的一堆辣椒,将其分为 1 和 ai1 a_i - 1 的两堆,这样,辣椒的总堆数将加一。
  • 选取数量为 aia_i 的一堆和数量为 aj=1a_j = 1 的另一堆(ij i \ne j ),将它们合并为数量为 ai+1 a_i+1 的一堆。这样,辣椒的总堆数将减一。

输入

每个测试包含多个测试用例。第一行包含测试用例的数量 t 。(1t104 1 \leq t \leq 10^4

每个测试用例的描述由两行组成。第一行包含两个整数 nk2n1092k105 2 \leq n \leq 10^9 ,2 \leq k \leq 10^5 —— —— 辣椒的总个数和分成的堆数。

第二行包含 k 个整数 a1,a2,......,ak a_1,a_2,......,a_k 。(1ain1ai=n 1 \le a_i \le n-1 ,\sum a_i = n )—— —— 仲夏分的每一堆中辣椒的个数。

保证所有 t 测试用例中 k 的总和不超过 2×105 2 \times 10^5

输出

对于每个测试用例,输出仲夏打乱辣椒之后小玖将其重新合并成一堆所需的最少操作次数。

样例

4
5 3
3 1 1
5 2
3 2
11 4
2 3 1 5
16 6
1 6 1 1 1 6
2
3
9
15