作业介绍
#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 小时