求助!
查看原帖
求助!
938629
Python_enjoy楼主2024/4/21 20:11

为什么错了……

#include <bits/stdc++.h>
using namespace std;
int n;
int w[25];
bool flag=false;
void dfs(int step,int sum1,int sum2,int sum3,int sum4)
{
	if(step>n)
	{
		if(sum1==sum2 && sum2==sum3 && sum3==sum4)
			flag=true;
		return;
	}
	
	dfs(step+1,sum1+w[step],sum2,sum3,sum4);
	if(flag==true)
		return;
	dfs(step+1,sum1,sum2+w[step],sum3,sum4);
	if(flag==true)
		return;
	dfs(step+1,sum1,sum2,sum3+w[step],sum4);
	if(flag==true)
		return;
	dfs(step+1,sum1,sum2,sum3,sum4+w[step]);
	if(flag==true)
		return;
}
void mian()
{
	cin>>n;
	memset(w,0,sizeof(w));
	for(int i=1; i<=n; i++)
		cin>>w[i];
	dfs(1,0,0,0,0);
	if(flag==true)
		cout<<"yes"<<endl;
	else
		cout<<"no"<<endl;
}
int main()
{
	int n;
	cin>>n;
	while(n--)
		mian();
	return 0;
}
2024/4/21 20:11
加载中...