(参考 [USACO 官方题解](http://www.usaco.org/current/data/sol_prob1_bronze_feb22.html))
关键点是发现:不论怎么改变数组,**它的元素总和总是不变的**。
通过枚举处理后的数组的长度 $r$,我们可以知道每一段的和 $\frac{\text{sum}(a)}{r}$。判断这个和是不是整数,再检验一下能不能凑出这个和就可以了。
时间复杂度:$O(N \cdot (\#\text{sum}(a)\text{ 因子个数 }))$
```cpp
int a[1000006];
int main() {
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
int sum = 0;
for (int i = 0; i < n; i++) {
cin >> a[i];
sum += a[i];
}
int ans;
for (int i = n; i >= 1; i--) { // r
if (sum % i != 0)
continue;
int cur = 0;
bool flag = 1;
for (int j = 0; j < n; j++) {
cur += a[j];
if (cur > sum / i) {
flag = 0;
break;
} else if (cur == sum / i) {
cur = 0;
}
}
if (flag) {
ans = n - i;
break;
}
}
cout << ans << endl;
}
return 0;
}
```