除了样例过不了,其他数据都过了
查看原帖
除了样例过不了,其他数据都过了
555513
yangtinghao楼主2022/9/3 13:29

求大佬查错


以下是错一个点代码(样例)

#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;
}
2022/9/3 13:29
加载中...