求大佬查错
以下是错一个点代码(样例)
#include<bits/stdc++.h>
using namespace std;
int t,n,a[100005],b[1005][2],top,s;
bool f1;
int main()
{
ios::sync_with_stdio(0);
cin>>t;
while (t--)
{
cin>>n;s=0;top=0;f1=1;
for (int i=1;i<=n;++i) cin>>a[i],s+=a[i];
for (int i=1;i*i<=s;++i)
{
if (s%i==0)
{
b[++top][1]=i;
b[top][2]=s/i;
}
}
for (int i=1;i<=top;++i)
{
int sum=0;bool f=1;
for (int j=1;j<=n;++j)
{
sum+=a[j];
if (sum>b[i][1]) {f=0;break;}
if (sum==b[i][1]) sum=0;
}
if (f==1)
{
f1=0;
cout<<n-b[i][2]<<endl;
break;
}
}
if (f1==1)
{
for (int i=top;i>=1;--i)
{
int sum=0;bool f=1;
for (int j=1;j<=n;++j)
{
sum+=a[j];
if (sum>b[i][2]) {f=0;break;}
if (sum==b[i][2]) sum=0;
}
if (f==1)
{
f1=0;
cout<<n-b[i][1]<<endl;
break;
}
}
}
if (f1==1) cout<<n<<endl;
}
return 0;
}
但是在前面加一个这个就过了(样例)……
if (t==3)
{
cout<<3<<endl<<2<<endl<<0;
return 0;
}