马蜂更加氢气(马嘉琪),90pts
查看原帖
马蜂更加氢气(马嘉琪),90pts
1140231
ChangeYuAN楼主2024/11/28 16:56
#include<bits/stdc++.h>
using namespace std;
const int MAXLEN=15;
int dp[5],a[MAXLEN],n,T;

inline bool dfs(int x,int group){
	bool ret=false;
	dp[group]+=a[x];
	if(x == n){
		if(dp[1]==dp[2]&&dp[2]==dp[3]&&dp[3]==dp[4]){
			dp[group]-=a[x];
			return true;
		}else{
			dp[group]-=a[x];
			return false;
		}
	}
	ret=dfs(x+1,1)||dfs(x+1,2)||dfs(x+1,3)||dfs(x+1,4);
	dp[group]-=a[x];
	return ret;
}

signed main(){
	scanf("%d",&T);
	while(T--){
		memset(a,0,sizeof(a));
		scanf("%d",&n);
		for(int i=1;i<=n;i++){
			scanf("%d",&a[i]);
		}dp[1]=dp[2]=dp[3]=dp[4]=0;
		if(dfs(0,0)){
			printf("yes\n");
		}else{
			printf("no\n");
		}
	}
}
2024/11/28 16:56
加载中...