6800: Array-Gift

内存限制:256 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:3 通过:1

题目描述

最近开始流行赠送数组,所以 Beijixing 送给了 Liyishui 一个长度为 n 的正整数序列 a = [a1, . . . , an],并附赠了两种操作: 
• 操作1:选择不同的下标i,j(即1≤i,j ≤n,i不等于j),且 aj不等于0,然后将 ai 修改为 ai mod aj 1.
 • 操作2:选择某个i满足1≤i≤n和任意一个正整数x,将ai修改为ai+x. 
 Liyishui 喜欢倒腾数组,她希望只使用这两种操作让 a 只剩恰好一个非0数,其他的数都变 成0。两种操作均可使用任意次。不幸的是Liyishui最近忙着赶ddl,你能帮忙求出最小操作 次数吗?

输入格式

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

输出格式

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

输入样例 复制

2
4
2 3 5 7
4
2 4 6 8

输出样例 复制

4
3

数据范围与提示

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