额,67分,感觉问题有点儿大
查看原帖
额,67分,感觉问题有点儿大
737075
lizixuan1018楼主2022/11/27 20:18
#include<bits/stdc++.h>
using namespace std;
int n,r,ans[30],vis[30],a[30],s,cnt;
int ss(int x){
	if(x<=1) return 0;
	if(x==2) return 1;
	for(int i=2;i<x;i++) if(x%i==0) return 0;
	return 1;
}
void f(int k){
	if(k==r+1){
		if(ss(s)) cnt++;
		return;
	}
	for(int i=1;i<=n;i++){
		if(a[i]>=ans[k-1]&&vis[i]==0){
			s+=a[i];
			ans[k]=a[i];
			vis[i]=1;
			f(k+1);
			s-=a[i];
			ans[k]=0;
			vis[i]=0;
		}
	}
}
int main(){
	cin>>n>>r;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	f(1);
	cout<<cnt;
	return 0;
}
2022/11/27 20:18
加载中...