Run ID 作者 问题 语言 测评结果 时间 内存 代码长度 提交时间
50405 jiabokai 练82.3 选数 C++ 无测评数据 0 MS 0 KB 580 2024-08-21 20:21:42

Tests(0/0):


#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; }