小 L 酷爱徒步旅行。这个暑假,她挑选了 T 条备选线路,每条线路都已拟好一份日程表:线路原计划走 N 天,第 i 天的行程为 a_i 公里,a_i = 0 表示原地休整一天。保证一条线路的总里程不超过 10^6 公里。
为了方便安排体力和预订沿途营地,小 L 希望调整日程,使每天行走的公里数完全相同。她唯一允许的调整方式是:把相邻的两天合并成一天,合并后这一天的行程为原来两天之和。
例如,若日程为 a = [1,2,3,4,5],合并第二天和第三天后,日程变为 [1,5,4,5]。
请帮小 L 对每条线路计算:最少需要合并多少次,才能使日程表中的所有数字相等。
第一行包含一个整数 T,表示备选线路的数量。
接下来 T 组数据,每组两行:第一行包含 N,第二行包含 a_1, a_2, \ldots, a_N。
输出 T 行,每行一个整数,表示该线路所需的最少合并次数。
2 3 3 1 2 3 4 4 4
1 0
3 5 1 2 3 4 5 3 4 1 5 3 6 2 4
4 1 1
3 9 0 0 3 0 3 0 0 3 0 9 1 1 1 1 1 1 1 1 2 6 10 20 30 60 30 30
6 4 3
第一条线路,合并第 2 天和第 3 天,日程变为 [3,3],共 1 次:
3 1 2
-> 3 3
第二条线路的日程已经全部相同,不需要任何合并。
第一条线路,总里程为 15,除了把全部天数合并成一段以外,无法划分成若干段相等的连续天数之和,因此需要 4 次合并,最终变为 [15]。
第二条线路合并前两天得 [5,5],只需 1 次。
对于 100\% 的数据,保证: