#P9960. Array-Gift

Array-Gift

Array-Gift

Problem Description

最近开始流行赠送数组,所以 Beijixing 送给了 Liyishui 一个长度为 nn正整数序列 a=[a1,,an]a=[a_1,\dots,a_n],并附赠了两种操作:

  • 操作1:选择不同的下标 i,ji,j(即 1i,jn1\leq i,j\leq niji \neq j),且 aj0a_j\neq 0,然后将 aia_i 修改为 aimodaj a_{i} \bmod a_{j}
  • 操作2:选择某个 ii 满足 1in1 \leq i \leq n 和任意一个 正整数 xx ,将 aia_{i} 修改为 ai+xa_{i}+x. Liyishui 喜欢倒腾数组,她希望只使用这两种操作让 aa 只剩 恰好一个00 数,其他的数都变成 00。两种操作均可使用任意次。不幸的是Liyishui最近忙着赶ddl,你能帮忙求出最小操作次数吗?

Input

第一行输入一个正整数 TT ,表示一共有 TT 组测试用例,1T30 1 \leq T \leq 30 . 接下来每组测试用例由两行构成:其中第一行输入一个正整数 n(1n100) n(1 \leq n \leq 100) ,表示序列 a a 的长度。第二行输入 n n 个正整数 a1,,an a_1,\dots,a_n ,相邻两数用一个空格隔开,表示序列 a a . 对 1in 1\leq i\leq n ,有 1ai106 1\leq a_i\leq 10^6 .

Output

对每个测试用例,输出一行一个整数,表示最小操作次数。

Sample Input

2
4
2 3 5 7
4
2 4 6 8

Sample Output

4
3

Hint

对于第一个样例,一种可能操作如下:$[2,3,5,7] \to [2, \mathbf{1},5,7] \to [ \mathbf{0},1,5,7] \to [0,1, \mathbf{0},7] \to [0,1,0, \mathbf{0}]$, 一共用了 44 次操作,可以证明这是最少可能的操作次数。 对于第二个样例,一种可能操作如下:$[2,4,6,8] \to [2,\mathbf{0},6,8] \to [2,0,\mathbf{0},8] \to [2,0,0,\mathbf{0}]$, 一共用了 33 次操作,可以证明这是最少可能的操作次数。

Source

2024“钉耙编程”中国大学生算法设计超级联赛(5)