Run ID | Author | Problem | Lang | Verdict | Time | Memory | Code Length | Submit Time |
---|---|---|---|---|---|---|---|---|
50405 | jiabokai | 练82.3 选数 | C++ | No Test Data | 0 MS | 0 KB | 580 | 2024-08-21 20:21:42 |
#include<bits/stdc++.h> using namespace std; int n,k,ans; bool vis[25]; int a[25],b[25]; bool prime(int n){ for(int i=2;i*i<=n;i++){ if(n%i==0){ return false; } } return true; } void dfs(int x){ if(x==k+1){ int sum=0; for(int i=1;i<x;i++){ sum+=a[b[i]]; } if(prime(sum)){ ans++; } return ; } for(int i=1;i<=n;i++){ if(!vis[i]&&i>b[x-1]){ vis[i]=true; b[x]=i; dfs(x+1); vis[i]=false; } } } int main(){ cin>>n>>k; for(int i=1;i<=n;i++){ cin>>a[i]; } dfs(1); cout<<ans; return 0; }