7-1 懂的都懂

 简单模拟(存储+判断即可)

#include
using namespace std;
#define int long long 
#define inf 0x3f3f3f3f
const int N=55;
int n,k,m,a[N],num;
unordered_sets;
void solve(){
   cin>>n>>k;
   for(int i=1;i<=n;i++) cin>>a[i];
   
   for(int i=1;i<=n-3;i++)
   for(int j=i+1;j<=n-2;j++)
   for(int x=j+1;x<=n-1;x++)
   for(int y=x+1;y<=n;y++){
   	int sum=a[i]+a[j]+a[x]+a[y];
   	s.insert(sum);
   }
   for(int i=1;i<=k;i++){
   	  cin>>m;
   	  int flag=0;
   	  while(m--){
   	  	  cin>>num;
   	  	  if(!s.count(num*4)){
   	  	  	  flag=1;
			   }
		 }
		 if(flag) cout<<"No"<<"\n";
		 else cout<<"Yes"<<"\n";
   }
}
signed main(){
	
	ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	solve(); 
	return 0;
}

over~

你可能感兴趣的:(c++,算法)