wa两个,大佬求助
查看原帖
wa两个,大佬求助
1278786
lihaoyyy楼主2024/4/6 08:13
#include<bits/stdc++.h>
using namespace std;
const int N=5e6+10;
int n,k;
int a[N],x[N];
bool v[N]={0};
int num=0;
int ans=0;
bool check(int g){
	for(int j=2;j*j<=g;j++){
		if(g%j==0){
			return false;
		}
	}
	return true;
}
void dfs(int p){
	if(p=k+1){
		
		if(check(num)==1)ans++;
		cout<<num<<" ";
	
		
		
		return ;
	}
	for(int i=1;i<=n;i++){
		if(v[i]==0&&a[i]>x[p-1]){
			x[p]=a[i];
			num+=x[p];
			v[i]=1;
			dfs(p+1);
			v[i]=0;
			num-=x[p];
		}
	}
}
int main(){
	x[0]=-100;
	cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>a[i];
	sort(a+1,a+n+1);
	dfs(1);
	cout<<ans;
	
	return 0;
}
2024/4/6 08:13
加载中...