作业介绍

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=1e3+10;
ll t,n,a[N],sum=0,dp[10],f;
bool mk[N]; 
void dfs(ll x,ll s){
	if(f==1) return ;
	if(dp[s]>sum/4) return ;
	if(x==n+1){
		f=1;
		return ;
	}
	for(int i=1;i<=4;i++){
		if(dp[i]==sum/4) continue;
		dp[i]+=a[x];
		dfs(x+1,i);
		dp[i]-=a[x];
	}
}
int main(){
	cin>>t;
	while(t--){
		memset(dp,0,sizeof dp);
		cin>>n;
		sum=0;
		for(int i=1;i<=n;i++) cin>>a[i],sum+=a[i];
		if(sum%4!=0) cout<<"no\n";
		else{
			f=0;
			sort(a+1,a+1+n,greater<int>());
			for(int i=1;i<=n;i++) cout<<a[i]<<" ";
			dfs(1,1);
			if(f) cout<<"yes\n";
			else cout<<"no\n";
		}
	}
	return 0;
}


题目

认领作业后才可以查看作业内容。
状态
正在进行…
题目
11
开始时间
2025-4-19 0:00
截止时间
2025-12-31 23:59
可延期
24 小时