样例过了,16分,求救
查看原帖
样例过了,16分,求救
1201913
Shawn16楼主2024/10/1 14:42
#include<bits/stdc++.h>
#define int long long
using namespace std;

int n,k,a[10005],cnt=0,sum=0;
bool f[10005];

bool pd(int x){
	if(x<=1)return 0;
	else{
		for(int i=2;i*i<=x;++i){
			if(x%i==0)return 0;
		}
	}
	return 1;
}

void dfs(int p){
	if(p>k){
		if(pd(sum)){
			cnt++;
		}
		return;
	}
	else{
		for(int i=0;i<n;++i){
			if(!f[i]){
				f[i]=1;
				sum+=a[i];
				dfs(p+1);
				sum-=a[i];
			}
		}
	}
}

signed main()
{
	cin>>n>>k;
	for(int i=0;i<n;++i){
		cin>>a[i];
	}
	dfs(1);
	cout<<cnt;
	
	return 0;
}
2024/10/1 14:42
加载中...