60分求调
查看原帖
60分求调
1087123
tan107821楼主2024/9/26 13:14

用的第1篇题解的思路...

#include<bits/stdc++.h>
#define itn int 
using namespace std;
int q,w[114514],lo,e[5];
bool cyx(itn a){
	if(a==lo+1)	return 1;
	for(int i=1;i<=4;i++){
		if(e[i]>=w[a]){
			e[i]-=w[a];
			if(cyx(a+1)==1)return 1;
			e[i]+=w[a];
		}
	}
	return 0;
}
int main(){
	cin>>q;
	for(itn i=1;i<=q;i++){
		cin>>lo;
		memset(w,0,sizeof(w));
		for(itn j=1;j<=lo;j++){
			cin>>w[i];
			w[0]+=w[i];
		}
		e[1]=e[2]=e[3]=e[4]=w[0]/4;		
		if(w[0]%4!=0){
			cout<<"no"<<endl;
			continue;
		} 
		sort(w+1,w+lo+1,greater<int>());
		if(cyx(1)==1){
			cout<<"yes"<<endl;
		} 
		else{
			cout<<"no"<<endl;
		}
	}
	
	
	return 0;
}
2024/9/26 13:14
加载中...